iOS4:应用程序终止事件?

时间:2011-04-28 22:25:47

标签: iphone ios4 notifications push terminate

我想知道如何检测应用程序即将被终止的时间。我的意思是真的终止了,而不仅仅是进入后台模式。我已经使用过这个事件了,它没有发射:

applicationWillTerminate

我真正希望实现的是当用户点击Home 两次并按下应用程序上的红色气球时获得某种事件或通知。我不关心进入后台模式的应用程序,有几个事件正确处理它们并且它们都工作正常。

我需要这个,这样我就可以“通知”我的服务器停止向APNS发送推送通知给已终止且未在后台运行的应用程序。

如果你知道一种更简单的方法来实现这一点,我很高兴听到:)

谢谢

4 个答案:

答案 0 :(得分:2)

注册您的对象(查看控制器等)以收听UIApplicationWillTerminateNotification通知,和/或覆盖应用程序代理的-applicationWillTerminate:方法并将您的代码放在那里。

答案 1 :(得分:1)

天使,你所要求的是无法做到的。该应用程序将以SIGKILL终止。不可阻挡,不可捕捉,没有通知。系统启动的终止或用户请求的终止之间没有区别。

只有当您的应用不支持后台处理时,才会获得applicationWillTerminate。

答案 2 :(得分:1)

来自UIApplicationDelegate文件:

  

对于支持的应用程序   后台执行,这个方法是   一般不会在用户时调用   退出应用程序,因为   应用程序只是移动到   那种情况下的背景。但是,这个   可以在某些情况下调用方法   运行应用程序的位置   背景(未暂停)和   系统需要为某些人终止它   原因。

在我看来,除非你的后台进程在后台主动做某事(没有被暂停),否则applicationWillTerminate方法永远不会被调用。

我想这取决于你对“在后台”的定义。

答案 3 :(得分:0)

IIRC它是这样的:

开始时:

  • didFinishLaunchingWithOptions
  • applicationDidBecomeActive

按回家:

  • applicationWillResignActive
  • applicationDidEnterBackground

从主屏幕回来:

  • applicationWillEnterForeground
  • applicationDidBecomeActive
当您的应用程序因呼叫退出或操作系统因某种原因导致其被杀死时,会调用

applicationWillTerminate