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

时间:2011-09-22 07:52:23

标签: iphone ios ipad

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

(双击主页按钮并按红色减' - '按钮)

我需要样本或伪代码......

4 个答案:

答案 0 :(得分:2)

有时你会得到UIApplicationWillTerminateNotification(你也可以在你的app代理中实现applicationWillTerminate:方法),但是在这种情况下你无法确保得到任何通知。所以不要依赖它。

如果您的应用被“暂停”,即在后台但未运行,您将不会收到通知。在暂停的情况下,您只是被不可捕获的SIGKILL杀死。当你因内存不足而被杀时也一样。

来自applicationWillTerminate:的文件(强调我的):

  

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

答案 1 :(得分:2)

试试这个:

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

您应该在实现UIApplicationDelegate

的类中实现上述方法

更多注意事项:如果您通过Xcode停止应用程序(停止调试按钮),则不会调用该方法。所以在测试时请耐心等待。

答案 2 :(得分:2)

当用户杀死应用时:

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

}

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

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

用户按下主页按钮:

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

答案 3 :(得分:0)

还有这个:

- (void)applicationDidEnterBackground:(UIApplication *)application {

}

如果您想知道它是否输入背景可能会有所帮助;)