我正在开发一个应用程序,根据当前位置每3小时检查一次天气。我正在使用FusedLocationProviderApi获取位置,并使用指向启动IntentService的BroadCastReceiver的pendingIntent。
在FusedLocationProviderApi中,您可以在创建LocationRequest时指定间隔时间段。因此,如果我将间隔指定为3小时,最快的间隔也指定为3小时(我不想在此之前获得更新),如果在进行位置更新时位置不可用,会发生什么情况?
我是否仍能在预定时间获得位置更新意向?如果最后一个已知位置不可用,我希望使用该位置,但我需要确保我仍能在计划时间获得PendingIntent。
还是使用警报管理器来处理定期工作并从IntentService中请求位置更新更好呢?
谢谢
发布于 2016-12-16 19:56:48
在FusedLocationProviderApi中,您可以在创建LocationRequest时指定间隔时间段。因此,如果我将间隔指定为3小时,最快的间隔也指定为3小时(我不想在此之前获得更新),如果在进行位置更新时位置不可用,会发生什么情况?
在这个scnerio设备必须是唤醒的,以保持您的位置请求活动。所以这意味着你必须有一个不间断的(理论上)后台服务,以及部分唤醒锁。它们听起来不太好。
相反,你可以参考AlarmManager方法,它被设置为每3小时唤醒一次。那么idea的工作原理如下
(将时间间隔值设置为set interval values以在接收到位置(以及执行实际工作)后休眠)
https://stackoverflow.com/questions/41182996
复制相似问题