applicationState是应用程序中的UIApplicationStateInactive:didReceiveRemoteNotification:fetchCompletionHandler:

时间:2015-06-24 20:11:22

标签: ios objective-c uiapplicationdelegate

当推送通知到达时,它会在后台使用应用程序播放音频:didReceiveRemoteNotification:fetchCompletionHandler:。

要启动它,我按主页按钮,然后按锁定屏幕按钮,然后屏幕关闭,然后发送推送通知。这适用于app状态是UIApplicationStateBackground并且我通过将其记录到文件来查看状态。然而,有时当应用程序背景时,它会在应用程序之前神秘地进入前台:didReceiveRemoteNotification:fetchCompletionHandler:应用程序中的应用程序状态为UIApplicationStateInactive:didReceiveRemoteNotification:fetchCompletionHandler:。这是日志:

AppDelegate applicationDidEnterBackground: called
AppDelegate applicationWillEnterForeground: called
AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler: called. currentThread 0x174261900 isMainThread 1
AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler: applicationState == UIApplicationStateInactive

在应用程序中的某些手机上:didReceiveRemoteNotification:fetchCompletionHandler:它始终显示UIApplicationStateBackground,而在其他手机上则显示UIApplicationStateInactive。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

在现代操作系统中,后台进程要么“暂停”,要么可以更快地将其拉出(状态为UIApplicationStateBackground),或者释放它们的内存以为更正面的进程提供内存。在这种情况下,它将成为您的UIApplicationStateInactive。当您的设备进行激烈处理并需要RAM时,就会发生这种情况。