2012-06-14 88 views
2

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

回答

4

你不能阻止应用程序的终止,但你可以做什么最好的时候,它在后台进入免费尽可能多的内存,你可以保持它活着就是 - 高速缓存图像,文件...同时停止任何正在运行定时器,UI更新和一切耗时。遵循MVC规则,最好的实现是创建一个单独的类(模型),它只负责位置更新(里面有CLLocationManager,而类实现了它的委托方法)。因此,您应该做的仅仅是收集由CLLocationManager收到的位置点,而不是别的。还要实施-applicationWillTerminate中的方法AppDelegate。这个方法仅在应用程序处于后台并且将被终止时(无论是由操作系统还是用户)调用,并且在CoreData中保存位置点,或者您可以执行此操作...我有这种方法,到目前为止,我的应用程序已经生活了24小时(当然收费),而不会被杀死。

2

在后台运行的应用程序依赖于内存的使用,电池的寿命etc.When有许多应用程序在后台运行,您的应用程序可能会terminated.I不认为你可以在后台永久运行你的应用程序。

+0

感谢您的快速回复。如果我的应用使用较少的内存,它是否会减少被终止的机会? – TK189

+0

你可以通知用户,只要位置changes.Follows此链接:http://stackoverflow.com/questions/3775730/iphone-app-runnung-in-the-background-terminates-after-10-minutes –

相关问题