我有一个前景服务(START_STICKY因此对于“被操作系统杀死”的方面没有问题),为了导航目的,每2秒接收一次位置(GPS)更新。我不采取任何唤醒。我的问题是:我需要一个唤醒键来避免深度睡眠?或者位置更新足以“运行”?GPS定位和深度睡眠
1
A
回答
2
在Android代码挖掘之后,回应是:不,你不需要它。 Android会为你取一个唤醒锁(LocationManagerService),直到onLocationChange结束或者你的广播接收器收到这个意图。如果你做了一些异步工作(启动一个intent服务,在onLocationChange中发布一些代码等等),那么你需要创建你自己的部分唤醒锁。
0
我在应用程序中做了同样的事情(但我使用接收器来接收我推荐的位置更新 - 有很多听众的错误报告)。你的方式有2个问题:
- 服务威力关闭反正
- 服务将最终入睡 - 我不知道为什么你没有遵守这一
正确的方法是通过AlarmManager注册闹钟 - 闹钟会唤醒接收器。从onReceive()
您必须启动一个WakefulIntentService
这将为您管理锁。
请参见:
- PowerManager.PARTIAL_WAKE_LOCK android
- Android design : background long running service or AlarmManager?
编辑:2秒是真的经常。这会杀死电池 - 预计评级非常低 - 或者将间隔提高。
+0
该服务可能会关闭,但对于具有粘性行为的我也可以。由于现在我没有看到任何问题,而且我也没有得到任何有关这类问题的报告。实际上,我使用单独的前台HandlerThread,并在注册位置列表程序时使用Thread.getLooper()使用此线程。 – greywolf82
相关问题
- 1. Android BroadcastReceiver和深度睡眠
- 2. wakelock,深度睡眠和gcm
- 3. 睡眠模式和深度睡眠模式有什么区别?
- 4. Android深度睡眠和唤醒锁
- 5. NSTimer,NSRunloop和深度睡眠的mac
- 6. 从深度睡眠调用android 4.0.3
- 7. 睡眠()或睡眠()的准确程度
- 8. 如何调整进入深度睡眠的时间长度
- 9. 睡眠和睡眠开始错误
- 10. 睡眠和睡眠有没有区别?
- 11. Android:手机在睡眠时GPS位置更新?
- 12. “睡眠”问题与某些设备上的GPS位置更新
- 13. iPhone和睡眠
- 14. CMSIS-RTOS Keil RTX - 进入ARM深度睡眠的正确方法
- 15. 连接到蓝牙设备在深度睡眠中失败
- 16. TIME_TICK会在深度睡眠中播出吗?
- 17. 如何获取深度睡眠中的部分唤醒锁
- 18. LPC1700不会从深度睡眠中醒来
- 19. 在深度睡眠模式下运行应用程序/服务?
- 20. 可以在Android SDK中唤醒深度睡眠BLE设备吗?
- 21. 如何从Jawbone UP iOS SDK获得深度睡眠?
- 22. Android:具有深度睡眠的时间间隔(System.nanoTime(),System.currentTimeMillis(),SystemClock.elapsedRealtimeNanos())
- 23. 睡眠而位未设置
- 24. 线程和睡眠()
- 25. Synchonizing睡眠和QTimer
- 26. 的max_execution_time和睡眠()
- 27. Pthread ID和睡眠
- 28. SSH流和睡眠
- 29. SIGALRM和睡眠()C++
- 30. GPS和GPRS在睡眠模式下是否部分锁定被禁用?
通过接收者或听众位置更新? –
@Mr_and_Mrs_D通过注册列表程序 – greywolf82