2

我正在制作一个应用程序,它需要每次都跟踪用户的位置。它也可以在后台模式下工作。问题是当我多次使用其他应用程序时。其他应用程序可能会导致大量内存。我的应用程序有时会被系统终止。没有崩溃日志。所以我想知道一些原因。有什么办法可以避免我的应用程序被终止?非常感谢您的帮助。

4

2 回答 2

4

你不能阻止应用程序被终止,但你能做的最好的事情是让它保持活力是当它进入后台时尽可能多的内存 - 缓存的图像,文件......同时停止任何正在运行的计时器,UI更新一切都很耗​​时。通过遵循 MVC 规则,最好的实现是创建一个单独的类(模型),它只负责位置更新(带有CLLocationManager内部,并且该类实现其委托方法)。所以在后台你应该做的唯一一件事就是收集接收到的位置点,CLLocationManager而不是别的。-applicationWillTerminate也在你身上实现这个方法AppDelegate. 仅当应用程序处于后台并且它将被终止(由操作系统或用户)并在内部保留 CoreData 中的位置点时才调用此方法,或者无论如何您都这样做......我有这样的方法和到目前为止,我的应用程序已经存活了 24 小时(当然还有充电)而没有被杀死。

于 2012-06-14T06:07:30.120 回答
2

后台运行的应用程序取决于内存使用情况,电池寿命等。当后台运行许多应用程序时,您的应用程序可能会终止。我认为您不能永久在后台运行您的应用程序。

于 2012-06-14T05:46:44.143 回答