AppWidgetProvider - 在窗口小部件中跟踪用户位置

时间:2017-07-22 14:21:01

标签: android widget location android-widget appwidgetprovider

我刚刚开始了解Android小部件生命周期是如何工作的,而且似乎它几乎是事件驱动的(广播驱动的)。没有真正的持久会话;您的小部件在更新期间被唤醒,您需要更新小部件的视图。

我可以猜到这个问题的答案,但是我可以跟踪小部件中的用户位置吗?如果我理解生命周期正确,我在LocationRequest类中注册的回调赢了“因为我使用的课程将被垃圾收集,所以很长时间没有工作。我唯一的选择是在更新期间获取一次该位置。

框架允许最多(或最小)30分钟的更新间隔。这是否意味着用户必须等待30分钟才能看到更新的位置?有没有解决方法?

感谢。

1 个答案:

答案 0 :(得分:2)

  

您的小部件在更新期间被唤醒,您需要更新小部件的视图

我们欢迎您随时使用RemoteViews更新应用小工具AppWidgetManager。如果需要,更新机制只是一种安排定期更新的方法。

  

我可以在小部件中跟踪用户位置吗?

不直接。应用小部件是RemoteViews;它没有逻辑。 AppWidgetProviderBroadcastReceiver的子类,您无法在那里轻松执行异步,可能很长的操作。

  

我唯一的选择是在更新期间获取一次该位置。

没有。您唯一的可靠选项是启动服务并获取位置数据,根据需要更新应用小部件。

请注意,持续监控位置会耗尽电池耗电量,这也是Android 8.0 +上缩小后台位置更新的原因之一。