已经浏览了同一主题的其他SO帖子,并且我决定在以下方法之间做出决定: Thread 1与Thread 2对比simple onLocationUpdate()
有人可以帮助我解决所有这些问题的优点和缺点。我需要每30秒更新一次;我认为使用带有AlarmManager的requestSingleUpdate()将不准确(因为它必须重新初始化过程),并且耗费更多电池。但线程似乎反过来说。
我的应用程序中也有一个地理围栏代码 - 给出一个大的轮询值也会影响该代码吗?
谢谢!
答案 0 :(得分:0)
请注意,您引用的两个线程需要每5或10分钟修复一次。你每30秒寻找一次。我粗略的经验是,每次打开GPS时,你可能需要30-60秒来获得新的修复,结果是每30秒可能与持续运行它没有什么不同。
但是,如果你可以每隔几分钟谈谈自己,那么我们确定的粗略策略是启用gps,如果你在1分钟内得到修复,那就使用你得到的第10个(你得到它们一次)一旦gps开始运行,每秒钟一次)因为在某些手机中显然有一些准确性优势,如果你在1分钟内没有得到修复,关闭,放弃并在下一个间隔再试一次。 AlarmManager是一种很好的计时方式,因为它会将手机从睡眠状态唤醒,因此您不会错过任何修复间隔。