Dom*_*icM 0 service gps android alarmmanager wakelock
我希望长时间(3-4小时)从服务中每3分钟收到一次gps数据.这一切都很好,但我有一些问题,哪种方法最适合电池寿命.
启动服务,在服务的onCreate内创建一个部分唤醒锁,启动一个每3分钟执行一次的计时器.从计时器内部获取位置数据.当服务停止时(3-4小时后)释放唤醒锁定.
使用AlarmManager每3分钟启动一次服务.在服务内部创建部分唤醒锁,获取位置数据,然后释放唤醒锁并停止服务.
与#1相同,但通过requestLocationUpdates()方法设置intervall而不是计时器.(我不喜欢这种方法的原因是当我使用计时器时我可以获得5个位置(每3分钟)并选择最准确的但是当我使用requestLocationUpdates()设置intervall时我只获得一个位置,这可能是不准确的,还是我错了?)
我不喜欢将部分唤醒锁留在3-4小时的想法,这就是为什么我认为#2可能是更好的解决方案.
小智 5
Run Code Online (Sandbox Code Playgroud)// The minimum distance to change Updates in meters
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)// The minimum time between updates in milliseconds
private static final long MIN_TIME_BW_UPDATES = 1000; // 1 sec
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)LocationManager locationManager; locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);