我已经通过解决方案,发现有很多方法可以实现位置跟踪逻辑。
- Intent+BroadcastReceiver+LocationListener
- Intent+IntentService+AlarmManager
- 位置监听器
- 其他技术或上述的不同组合......
我正在尝试找出实现相同目标的最佳实践(最省电的方式)...
我有一个库类 MyLocationClass.java,它有两种方法 1. startTracking() - 在 T 时间之后开始发送用户位置,并且仅当用户移动了 X 距离 2. stopTracking() - 停止发送位置更新。
一个简单的答案似乎是 LocationListener,因为它内置的 Time Passed/Distance Moved 功能提供了更好的用户体验,但随后......
我不希望 GPS 一直处于开启状态?事实上,它应该只在 T 和 X 交叉时打开。使用 Service/IntentService 和/或/与警报管理器 Timer 会是更好的解决方案吗?带有 LocationListeners 的广播接收器能否被证明是更好的解决方案?
请建议。