如何避免我的应用程序被终止,当它正在运行并在后台跟踪我的位置?

时间:2012-06-14 05:38:48

标签: iphone ios background location terminate

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

2 个答案:

答案 0 :(得分:4)

你不能阻止应用程序被终止,但是你最能保持它活着的是当它在后台自由进入尽可能多的内存时 - 缓存的图像,文件...也停止任何运行的计时器,UI更新和一切耗时。通过遵循MVC规则,最佳实现是创建一个单独的类(模型),它只负责位置更新(内部有CLLocationManager,并且该类实现其委托方法)。因此,你应该做的唯一事情是收集CLLocationManager收到的位置点,而不是其他任何东西。同时在您-applicationWillTerminate中实施方法AppDelegate。只有当应用程序处于后台时才会调用此方法,并且它将被终止(由操作系统或用户终止),并且内部会保留CoreData中的位置点,或者您执行此操作...我有这样的方法,到目前为止,我的应用程序已经存在24小时(当然收费)而没有被杀死。

答案 1 :(得分:2)

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