我正在编写一个在后台模式下运行的应用程序,它可以跟踪用户(因此有时会在后台模式下更新位置),并通过使用区域监控通知他附近的点。我不使用从区域监控重新启动应用程序的功能。
目前,在收到applicationWillTerminate:
消息后,我停止位置更新并从区域监控中删除所有点。我注意到应用程序的奇怪行为。尝试在多任务菜单中将其杀死后,以下消息(按如下顺序)被传递到应用程序:
applicationWillTerminate:
applicationDidEnterBackground:
- (有时)再来一个
locationManager:didUpdateToLocation:fromLocation:
如果我没有为此应用程序注册后台定位模式,它就会被杀死。
我希望应用程序在用户在多任务菜单中杀死它并且不从区域监控中获取消息后像其他应用程序一样终止(无论如何,此时没有跟踪任何点)。不过,我需要能够使用后台定位模式。目的是尽量减少电池的使用。我应该怎么做才能做到这一点?
另外,为什么应用程序会applicationDidEnterBackground:
在之后收到applicationWillTerminate:
?从多任务菜单关闭后它是否仍在运行?