如果应用程序在NSTimer运行时被暂停,重新打开时是否会崩溃?

时间:2013-11-01 18:22:01

标签: ios cocoa-touch nstimer cllocationmanager

有些东西让我的应用程序在被暂停和重新打开之间崩溃。它是一个基于位置的应用程序,它使用didUpdateLocations回调/委托功能。我有一两个计时器在后台运行,我不确定当应用程序最小化时会发生什么。

我一直在思考。真的,如果定时器没有在后台运行那么好;他们不需要。但是它们是否会被暂停,当应用程序重新启动时,它们会尝试赶上它们所处的位置?当我重新打开它时,为什么我的应用程序会崩溃?

它不像重新打开时那样简单。如果它是正常的时间,它的工作原理。应用程序可以在合理的范围内无限期地在后台运行,所以如果我再次打开它之前等待一两天,它就会崩溃。不会崩溃,但必须冻结。它没有发送崩溃报告,只是坐在那里什么都不做。我无法与UI或任何东西进行交互。是什么导致它这样做?

就像我说的那样,“无限期”运行的唯一东西是didUpdateLocations方法和一两个检查事物的计时器。这是程序流程。这一切都源于此。如果有人需要,我可以提供一些代码或更多信息。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

正如lehn0058所提到的,当应用程序打开时,计时器会针对每个错过的增量触发一次。这可能是灾难性的,听起来如果计时器没有设置为倒计时,每次应用程序打开和关闭时,它应该可能无效并重新启动。我最近发现的另一个选项是名为Flurry的软件。它是我最近集成到我的应用程序中的分析软件。可能非常有用;如果他们没有听说过,其他人应该调查一下。