2011-04-23 68 views
0

我正在写一个Android应用程序使用GPS位置提供程序在创建主活动时启动的服务(除非服务已在运行)。我的印象是服务会继续运行,除非任务管理器在内存不足的情况下可能会杀死它。出于某种原因,如果存在活动时间非常短的时间段,则服务会重新启动,而不管可用内存的数量有多少。当用户在室外并且GPS能够解析某个位置时,该服务将每隔30秒获得一个位置并关闭两者之间的GPS(以节省电池)。在这种情况下,服务继续运行,没有任何问题,但是当用户移动内部并且在5秒内无法找到GPS位置时,服务关闭GPS,并且每200秒只会重新激活GPS,以检查用户已移回户外。在这种情况下,服务有时会被停止并且不会重新启动,直到应用程序重新打开并且该活动重新启动服务。我创建了一个单独的服务来确保该过程不中断。有谁知道为什么会发生这种情况?非常感谢你的帮助! -dom服务停止几分钟的无活动后

+0

你有没有正确设置你的唤醒锁? – nickfox 2011-04-23 20:32:50

+0

什么是唤醒锁?对不起,我是一种小菜 – GPSmaster 2011-04-23 20:33:35

+0

所以在我的情况下PARTIAL_WAKE_LOCK会做? – GPSmaster 2011-04-23 20:37:59

回答

1

我会看看马克·墨菲的例子,与服务和Wakelocks涉及:,那么你要得到他的

WakefulIntentService

如果你不能从他的代码示例看着办吧高级Android书详细解释了问题。

The Busy Coder's Guide to Advanced Android Development

这些都是一些关于Android开发的,也是值得的最低成本,最好的书。

+0

谢谢!我想我需要研究更多关于待定意图和应用程序上下文的知识,以了解这是什么。 – GPSmaster 2011-04-24 04:07:50