我有一個前景服務(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