iOS可以在后台杀死一个应用程序吗?

ma1*_*w28 1 iphone uiapplicationdelegate ios

当设备启动时,iOS是否可以applicationWillTerminate:在后台自动终止我的应用程序(呼叫)?

我也很好奇在另外两个案例中发生了什么,总共三个:

  1. 设备已开启
  2. 设备已关闭
  3. 设备丢失电池

我问,因为我想知道有多久applicationWillTerminate:可能被召唤.我想知道这个,因为那是我注册远程通知的地方.如果将设备令牌发送到服务器失败,我想知道该方法再次被调用的可能性(即,重试将设备令牌发送到服务器).

Jas*_*oco 7

如果您的应用程序支持多任务处理(iOS 4.0+链接的任何内容的默认设置),则几乎不会调用此方法.文档说,如果应用程序在后台运行并且系统想要终止,则可能会调用它.然而,根据我的经验,我在运行一个在后台积极播放音乐的音乐应用时,实际上只看到了这个,系统正在抛弃一切.如果我运行后台任务(不是音乐,而是短期后台任务),我已经看到应用程序在没有调用此方法的情况下终止.

我不会依赖于调用此函数并尝试在您的委托方法中执行所有必须进行的清理,以便转换到后台和后台任务完成块(这些块之前至少执行了几秒钟)该应用程序被抛弃).


Cal*_*leb 5

iOS不仅可以自动终止您的应用,而且用户可以手动终止它.事实上,用户可以杀死你的应用程序的唯一时间是它在后台.此外,当您的应用程序处于"后台"时,它更可能被暂停而不是实际运行,因此当您不是前台应用程序时,不要指望进行大量处理.

至于你获得的可能性-applicationWillTerminate:,这将取决于用户以及他们如何使用他们的设备.你应该在得到它时适当地处理它,否则就去做你的事.