2011-03-28 43 views
0

在我正在开发的一个应用程序中,我正在注册服务中的位置更新。那是更好的方式吗?应用程序逻辑是这样的,服务将在应用程序之前处于活动状态。在服务中注册位置更新还是在Android版Activity中更好?

我有时遇到问题,比如一旦服务运行并且位置更新正常工作。但是大约4-5小时后,位置更新自动停止,所以它让我相信系统会在一段时间后自动停止服务。如果我在这里错了,请纠正我。

在这种情况下,我将不得不从活动注册位置侦听器而不是服务。有人能告诉我我是否正确理解它吗?

回答

0

但大约4-5小时后,位置更新自动停止,所以它使我相信服务在一段时间过后会自动停止。

这听起来像是onStartCommand()需要return START_STICKY,这应该保持在你的服务,直到它明确停止(请确保您的用户都知道,这个持续运行服务将导致增加消耗了电池,视你所有的服务是什么)。

在这种情况下,我将不得不从活动而不是服务注册位置监听器。

当在Activity的上下文中注册任何监听器时,监听器只有在Activity具有用户焦点时才能正确运行(请参阅Managing the Application Lifecycle)。当你的活动暂停或被杀害时,你的听力也是如此;远程服务是更好的选择。