首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FusedLocationProviderApi或AlarmManager启动定期位置更新

使用FusedLocationProviderApi或AlarmManager启动定期位置更新
EN

Stack Overflow用户
提问于 2016-12-16 19:04:03
回答 1查看 278关注 0票数 0

我正在开发一个应用程序,根据当前位置每3小时检查一次天气。我正在使用FusedLocationProviderApi获取位置,并使用指向启动IntentService的BroadCastReceiver的pendingIntent。

在FusedLocationProviderApi中,您可以在创建LocationRequest时指定间隔时间段。因此,如果我将间隔指定为3小时,最快的间隔也指定为3小时(我不想在此之前获得更新),如果在进行位置更新时位置不可用,会发生什么情况?

我是否仍能在预定时间获得位置更新意向?如果最后一个已知位置不可用,我希望使用该位置,但我需要确保我仍能在计划时间获得PendingIntent。

还是使用警报管理器来处理定期工作并从IntentService中请求位置更新更好呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-12-16 19:56:48

在FusedLocationProviderApi中,您可以在创建LocationRequest时指定间隔时间段。因此,如果我将间隔指定为3小时,最快的间隔也指定为3小时(我不想在此之前获得更新),如果在进行位置更新时位置不可用,会发生什么情况?

在这个scnerio设备必须是唤醒的,以保持您的位置请求活动。所以这意味着你必须有一个不间断的(理论上)后台服务,以及部分唤醒锁。它们听起来不太好。

相反,你可以参考AlarmManager方法,它被设置为每3小时唤醒一次。那么idea的工作原理如下

  • 设备唤醒
  • 发出位置请求

(将时间间隔值设置为set interval values以在接收到位置(以及执行实际工作)后休眠)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41182996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档