我想知道如何检测应用程序即将被终止的时间。我的意思是真的终止了,而不仅仅是进入后台模式。我已经使用过这个事件了,它没有发射:
applicationWillTerminate
我真正希望实现的是当用户点击Home 两次并按下应用程序上的红色气球时获得某种事件或通知。我不关心进入后台模式的应用程序,有几个事件正确处理它们并且它们都工作正常。
我需要这个,这样我就可以“通知”我的服务器停止向APNS发送推送通知给已终止且未在后台运行的应用程序。
如果你知道一种更简单的方法来实现这一点,我很高兴听到:)
谢谢
答案 0 :(得分:2)
注册您的对象(查看控制器等)以收听UIApplicationWillTerminateNotification
通知,和/或覆盖应用程序代理的-applicationWillTerminate:
方法并将您的代码放在那里。
答案 1 :(得分:1)
天使,你所要求的是无法做到的。该应用程序将以SIGKILL终止。不可阻挡,不可捕捉,没有通知。系统启动的终止或用户请求的终止之间没有区别。
只有当您的应用不支持后台处理时,才会获得applicationWillTerminate。
答案 2 :(得分:1)
来自UIApplicationDelegate文件:
对于支持的应用程序 后台执行,这个方法是 一般不会在用户时调用 退出应用程序,因为 应用程序只是移动到 那种情况下的背景。但是,这个 可以在某些情况下调用方法 运行应用程序的位置 背景(未暂停)和 系统需要为某些人终止它 原因。
在我看来,除非你的后台进程在后台主动做某事(没有被暂停),否则applicationWillTerminate方法永远不会被调用。
我想这取决于你对“在后台”的定义。
答案 3 :(得分:0)
开始时:
didFinishLaunchingWithOptions
applicationDidBecomeActive
按回家:
applicationWillResignActive
applicationDidEnterBackground
从主屏幕回来:
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
。