我如何知道应用程序是否被用户终止



如何知道应用程序是否被用户终止?

(双击Home键并按红色减号'-'键)

有时你确实会得到UIApplicationWillTerminateNotification(你也可以在你的应用程序委托中实现applicationWillTerminate:方法),但在这种情况下,不能保证你会得到任何通知。所以不要依赖它。

你不会收到通知,如果你的应用程序是"暂停",也就是说,它是在后台,但没有运行。在暂停的情况下,你只是被不可捕捉的SIGKILL杀死。当你因内存不足而被杀死时也是如此。

来自applicationWillTerminate:的文档(重点是我的):

对于不支持后台执行或链接到iOS 3的应用程序。X或更早版本,此方法总是在用户退出应用程序时调用。对于支持后台执行的应用程序,当用户退出应用程序时通常不会调用此方法,因为在这种情况下,应用程序只是移动到后台。但是,在应用程序在后台运行(没有挂起)并且系统由于某种原因需要终止它的情况下,可能会调用方法

当用户终止应用程序时:

- (void)applicationWillTerminate:(UIApplication *)application{
}

应用程序将进入非活动状态:

 - (void)applicationWillResignActive:(UIApplication *)application
 {
  NSLog(@"Application Did Resign Active");
 }

用户按Home键:

 - (void)applicationDidEnterBackground:(UIApplication *)application
{
  NSLog(@"Application Did Enter Background");
}

试试这个:

- (void)applicationWillTerminate:(UIApplication *)application
{
    /*
     Called when the application is about to terminate.
     Save data if appropriate.
     See also applicationDidEnterBackground:.
     */
}

你应该在实现UIApplicationDelegate的类中实现上面的方法

还有一些注意事项:如果你通过Xcode(停止调试按钮)停止应用程序,该方法将不会被调用。所以在测试时要有耐心。

还有:

- (void)applicationDidEnterBackground:(UIApplication *)application {
}
如果你想知道它是否进入背景,

可能会有帮助;)

最新更新