2012-09-28 54 views
1

我是初学者。我想开发一个可以生成基于位置的通知的应用程序。在Android开发者网站,我为了保持电池寿命和数据交换之间的平衡中找到一个应该考虑的新的更新 Android基于位置的服务

  • 窗口,您听位置更新

    1. 频率。

    我知道频率可以通过调用requestLocationUpdates()来控制。我的问题是如何控制我在哪里侦听更新?这是否意味着一旦我从LocationListener类的onLocationChanged()方法获取了位置更新,我应该停止使用removeUpdates()监听更新?

    感谢

  • +0

    我想出了一个算法,基料的更新,位置的粒度,并从以前的位置之间的距离时的位置更新。 –

    回答

    0

    我想你应该停止listenting更新,只有当你不再需要新的位置。如果您只需要一个新的地点,立刻停止聆听是最好的方法。为了获得更多的位置(随着用户的移动),建议您开始收听onResume中的位置更新,并停止在中注册。这意味着只有当您的活动在所有其他人面前时(可见),才会调用您的onLocationChanged

    总之,管理您需要的窗口的活动应该具有上述指定的这些调用。

    +0

    嗨,感谢您的回答 – Alexander

    +0

    不客气!例如,我的应用程序请求onStart中的位置更新,并停止在onStop(主要活动)中询问它们,因为即使其他活动位于活动堆栈顶部时,我也需要获取新位置(我只是确保忽略removeUpdates当新的活动仍然是我的)。祝你好运! –

    1

    当您注册requestLocationUpdates()时,GPS设备才会开始工作(并消耗功率)。

    定制GPS可以在更新之间切换,如果它们不是很频繁。比方说,例如你每5分钟就要求更新一次,那么GPS可以关闭4分30秒。并及时开启以获取下一个位置。如果您每5秒钟设置新的位置请求,则GPS在更新之间不会关闭。

    我有一个应用程序,保持GPS全时唤醒,记录数据库中的位置。此应用程序还可以显示地图并绘制记录的曲目。我的经验是,用于实时跟踪变化的地图绘制功率远高于GPS使用的功率。

    好运

    +0

    谢谢。既然你已经有一个使用GPS的应用程序让我问你是一个更好的方法来获取使用服务的更新? – Alexander

    +0

    这取决于您的应用程序要求。在我的情况下,我希望让用户开始录制,然后退出应用程序来做其他事情,而录制继续进行,这意味着将其作为服务运行。如果您可以在用户离开应用程序时停止请求而不影响功能,那么请求更新活动会更容易。 – Luis