在我正在开发的一个应用程序中,我注册了一个服务中的位置更新。这是一种更好的方法吗?应用程序逻辑是这样的:服务将在应用程序之前一直处于活动状态。
我有时会遇到这样的问题,比如一旦服务运行,位置更新工作正常。但大约4-5个小时后,位置更新会自动停止,所以我相信系统会在经过一段时间后自动停止该服务。如果我说错了,请纠正我。
在这种情况下,我将不得不从activity而不是Service注册位置侦听器。有没有人能告诉我我的理解是否正确?
发布于 2011-05-12 05:06:48
,但大约4-5小时后,位置更新会自动停止,所以它让我相信,经过一段时间后,系统会自动停止服务。
这听起来像onStartCommand()需要return START_STICKY,这应该保持你的服务,直到它被明确停止(确保你的用户知道这个持续运行的服务将导致电池消耗增加,这取决于你的所有服务做什么)。
在这种情况下,我将不得不从activity而不是Service注册位置侦听器。
当在活动的上下文中注册任何侦听器时,只有在活动具有用户焦点时,侦听器才能正确运行(请参见Managing the Application Lifecycle)。当您的活动暂停或终止时,侦听也是如此;远程服务是更好的选择。
https://stackoverflow.com/questions/5458291
复制相似问题