我有一个在后台运行的应用。调用此应用程序以便能够更新然后进入睡眠状态。
出于某种原因,它会在几个小时后停止工作。
我有一些理论,但我找不到关于它们的文档。
NSTimer
是否有最大重复次数?如果有人可以回答这些问题,或者提供一些有关它们的信息,那就太棒了。
这些理论建立在客户报告的基础上。
答案 0 :(得分:1)
在Apple Docs中,您可以找到允许的后台执行模式的非常分析性的描述,在这种情况下,您可以使用每种模式以及一些最佳实践。如果您的应用程序不遵循上述任何内容,则事情变得相当随意。 AFAIK无法知道操作系统何时会杀死您的应用程序或做任何事情来阻止它。
答案 1 :(得分:1)
逐点回答(以简单的方式):
applicationWillTerminate
消息。 NSTimer
只能是两种中的一种:重复或非重复。您可以参考NSTimer class reference documentation获取此类方面的证据。有关应用后台运行模式的完整说明,请参阅Apple开发人员文档at this link。
如果您的应用必须在后台负责任地运行,那么理解多任务处理和采用正确的策略是一个很好的起点。
答案 2 :(得分:0)
首先使用XCode Organizer查看崩溃报告。崩溃报告将有一个异常代码,显示应用程序消失的原因。
如果您遇到后台操作问题,正如问题中暗示的那样以及spassas的回答,您将在崩溃报告中看到异常代码0xbad22222。
有关详细信息,请参阅the Apple doc on exception codes。