iOS应用程序通过VOIP唤醒,应用程序状态错误

iOS应用程序通过VOIP唤醒,应用程序状态错误,ios,swift,voip,Ios,Swift,Voip,当应用程序在中接收消息时,我使用VOIP唤醒我的应用程序 func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { } 然后将调用ApplicationIDBecomeActive func applicationDidBecomeAct

当应用程序在中接收消息时,我使用VOIP唤醒我的应用程序

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {

}
然后将调用ApplicationIDBecomeActive

func applicationDidBecomeActive(_ application: UIApplication) {
}
我想检测应用程序是否被杀死,所以我添加了如下代码

func applicationDidBecomeActive(_ application: UIApplication) {
    if application.applicationState == .background {
        // background
    } else if application.applicationState == .active {
        // active
    } else if application.applicationState == .inactive {
        // inactive
    }
}
但是应用程序状态总是返回。处于活动状态,实际上应用程序已被终止


如何获得正确的状态?

如果调用了
ApplicationIDBecomeActive
,则表示用户正在使用您的应用程序,此时它只能处于“活动”状态。为什么在应用程序生命周期的这一点上,您希望出现不同的状态?因为我的应用程序已被终止,所以在收到VOIP消息时,仍将调用ApplicationIDBecMeactive。请阅读
ApplicationIDBecMeactive
委托方法的文档。它声明“调用此方法是为了让您的应用程序知道它已从非活动状态移动到活动状态。”。