用位置侦听器和挂起意图注册位置更新有什么区别?



在Android Pro Tips上的Google I/O会话中,http://www.google.com/events/io/2011/sessions/android-protips-advanced-topics-for-expert-android-app-developers.html,演讲者提到使用pending intent over location listener注册位置更新??有谁知道这背后的原因吗?

Location listener是一个由你的类实现的接口,这意味着你的类(和你的activity/app)必须在内存中(app/service必须是活动的)才能被调用。

OTOH,在挂起意图的情况下,操作系统可以启动一个服务并传递意图,这意味着你的应用在那个时候不需要处于活动状态。

所以如果你需要随时获取位置更新,那么使用pending intent。它们将唤醒你的应用并传递意图。你应该在一个服务中使用这个,这样一个服务就会被启动,并在后台完成所需的工作。

但是如果你只需要在应用处于活动状态时更新位置,那么使用位置监听器。在哪里实现侦听器取决于您的体系结构。

最新更新