我正在使用服务中的GPS位置提供程序编写一个Android应用程序,该服务在创建主Activity时启动(除非该服务已在运行)。我的印象是,如果内存不足,任务管理器可能会将其杀死,因此该服务将继续运行。出于某种原因,如果有一段非常低的活动时间,无论可用内存多少,服务都会重新启动。当用户在室外并且GPS能够解析位置时,服务将每隔30秒获得一个位置并关闭其间的gps(以节省电池)。在这种情况下,服务继续运行没有任何问题但是当用户进入内部并且在五秒钟内找不到gps位置时,该服务将关闭gps并且仅每200秒重新激活GPS以检查是否用户已搬回户外。在这种情况下,服务有时会停止,并且在重新打开应用程序并且活动重新启动服务之前不会重新启动。我创建了一个单独的服务,以确保该过程不会中断。有谁知道为什么会发生这种情况?非常感谢你的帮助! -Dom
答案 0 :(得分:1)
我想看看Mark Murphy处理服务和唤醒锁的例子:
如果你无法从他的代码示例中找到答案,那么你想获得他的高级Android书籍,其中详细解释了问题。
The Busy Coder's Guide to Advanced Android Development
这些是关于Android开发的一些最好的书籍,非常值得以最低的成本。