【问题标题】:Reasons why iOS will terminate an appiOS 将终止应用程序的原因
【发布时间】:2017-08-24 03:15:09
【问题描述】:

我们有一个在后台运行的 GPS 跟踪类型 iOS 应用程序。我们发现在跟踪过程中调用applicationWillTerminate 方法似乎终止了应用程序的情况很少见。

我们或多或少地排除了内存不足的原因。也绝对不是电池电量问题或用户终止应用程序。

任何建议 iOS 终止应用程序的下一个最可能的原因是什么?

我们的一些想法是 CPU 使用率、手机温度水平或仅仅是因为应用程序在后台运行了很长时间(例如几天或几周)。

这些可能或什至可能导致 iOS 终止应用的原因吗?

【问题讨论】:

  • 我认为你看错了。您的应用程序可以总是在后台终止,无论系统感觉如何。您无法阻止或猜测它。你不应该期望它不会被终止。
  • 但是,该方法可能会在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下调用..developer.apple.com/documentation/uikit/uiapplicationdelegate/…

标签: ios applicationwillterminate


【解决方案1】:

来自 Apple 的 Background Execution 文档:

在后台运行时做最少的工作。执行时间 给予后台应用程序比时间量更受限制 给前台应用程序。花费太多时间执行的应用程序 在后台可以被系统限制或终止。

另外,我假设您已经确认您没有违反以下规定(来自同一个文档):

每次调用 beginBackgroundTaskWithName:expirationHandler: 或 beginBackgroundTaskWithExpirationHandler: 方法生成一个唯一的 与相应任务关联的令牌。当你的应用 完成一个任务,它必须调用 endBackgroundTask: 方法 相应的令牌,让系统知道任务完成。 后台任务调用 endBackgroundTask: 方法失败 将导致您的应用终止。

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 2014-02-23
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多