我希望每5分钟更新一次该位置,直到应用程序的生命周期。我知道如何更新位置。我想知道的是requestForLocation是否是阻塞调用。
我可以在Service类中执行此操作,但Service仅在主线程上运行,并且系统可以随时停止Service。我不希望这种情况发生。位置更新应该有效,直到应用程序在内存中。如果应用程序本身被杀死,那么服务器显然也会被杀死。
实施此方法的方法应该是什么?
答案 0 :(得分:2)
我想知道的是requestForLocation是否是阻塞调用。
Android中没有名为requestForLocation()
或requestForLocationUpdates()
的方法。如果您的意思是requestLocationUpdates()
,则这不是阻止通话。
我不希望这种情况发生。
用户和操作系统有权随时终止您的服务。在这种情况下,这是一件好事,因为你提出的计划浪费了RAM,没有任何好处。
实施此方法的方法应该是什么?
使用AlarmManager
和类似于我的LocationPoller
的服务,这样您就可以获取您的位置数据,对其执行某些操作,然后关闭直到下一个时段到来。
另外,请允许您的用户配置轮询周期,包括“不轮询”选项。