我正在开发一款应用程序,每隔3小时根据当前位置检查天气。我正在使用FusedLocationProviderApi并使用pendingIntent来获取启动IntentService的BroadCastReceiver。
在FusedLocationProviderApi中,您可以在创建LocationRequest时指定间隔时间段。因此,如果我将间隔指定为3小时,将最快间隔指定为3小时(我不希望在此之前获得更新),如果在进行位置更新时位置不可用会发生什么?
我是否仍会在预定时间获得位置更新意图?如果位置不可用,我想使用最后一个已知位置,但我需要确定我仍然在预定时间获得PendingIntent。
或者最好使用警报管理器来处理定期工作并从IntentService中请求位置更新吗?
由于
答案 0 :(得分:0)
在FusedLocationProviderApi中,您可以在创建LocationRequest时指定间隔时间段。因此,如果我将间隔指定为3小时,将最快间隔指定为3小时(我不希望在此之前获得更新),如果位置不可用,则会发生什么情况进行位置更新?
在这个scnerio设备必须清醒,以保持您的位置请求。所以这意味着你必须有一个不间断的(理论上)后台服务,以及部分唤醒锁定。听起来不太好。
相反,您可以参考AlarmManager方法,该方法设置为每3小时唤醒一次。然后想法就像下面的