繁体   English   中英

AppWidgetProvider-跟踪小部件中的用户位置

[英]AppWidgetProvider - Tracking User Location in a Widget

我才刚刚开始了解Android小部件生命周期的工作原理,并且似乎它是由事件驱动(广播驱动)的。 没有真正的持续会话; 您的窗口小部件在更新过程中被唤醒,您应该更新窗口小部件的视图。

我可以猜出这个问题的答案,但是我可以在小部件中跟踪用户位置吗? 如果我理解正确的生命周期,那么我在LocationRequest类中注册的回调将无法使用很长时间,因为我使用的类将被垃圾回收。 我唯一的选择是在更新过程中获取一次位置。

该框架允许最大(或最小)30分钟的更新间隔。 这是否意味着用户将不得不等待30分钟才能看到更新的位置? 有什么解决方法吗?

谢谢。

您的窗口小部件在更新过程中被唤醒,您应该更新窗口小部件的视图

欢迎您随时使用AppWidgetManager更新应用程序小部件的RemoteViews 如果需要,更新机制只是安排定期更新的一种方式。

如何在小部件中跟踪用户位置?

不直接。 一个应用程序小部件是RemoteViews 它没有逻辑。 AppWidgetProviderBroadcastReceiver的子类,您不能在其中轻松执行异步的,可能很长的操作。

我唯一的选择是在更新过程中获取一次位置。

否。唯一可靠的选择是启动服务,并让其获取位置数据,并根据需要更新应用程序小部件。

请注意,持续监视位置会消耗大量电池,这是在Android 8.0+上限制后台位置更新的原因之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM