爲什麼建議通常在使用鬧鐘管理器時傳遞意向服務的待定意圖?在警報管理器調用的廣播接收器的onreceive()函數中可以做同樣的事情。使用服務有什麼優勢(意向服務)?在android中使用廣播recevire與鬧鐘管理器
回答
如果您需要完成的一切都可以在BroadcastReceiver
的onReceive
中完成,那麼您應該使用它而不是IntentService
。
如果您想在BroadcastReceiver
之後執行任何操作,那麼您應該使用IntentService
。例如,如果您希望BroadcastReceiver
啓動Service
,並且您希望該服務獲得WakeLock
,則應該使用IntentService
代替。
原因是,AlarmManager
只保證BroadcastReceiver
的onReceive
將運行,即使您使用RTC_WAKEUP
。所以,如果你使用BroadcastReceiver
/Service
組合,那麼CPU在Service
可以獲得WakeLock
之前就會睡着 - 這就是說,除非你在BroadcastReceiver
中獲得WakeLock
並且你在服務中獲得一個,也許通過static
WakeLock
。但是,這是......凌亂,我想。
順便說一句,我從未實施過IntentService
。我只是使用BroadcastReceiver
和Service
組合,並從未報告過問題。我所提供的信息是事情,我從其他SO職位(主要來自CommonsWare)讀
編輯:
我從一些CommonsWare讀取的50ms的時間框架貼在計算器上,並CommonsWare似乎是一個相當Android的可靠知識來源。
我看着它,並The docs不這樣說:
(有被打死10秒,系統 之前允許考慮到被阻擋的接收器和一個候選超時)。
而且他們也說:
如果廣播接收器通過一個標籤推出,那麼對象是從這個函數返回後沒有 不再活着。
- 你不應該做任何接近10秒的事情,爲了安全起見。
- 如果您需要等待任何迴應,
BroadcastReceiver
將會因爲onReceive
可能會在您收到回覆之前完成運行而死掉。
雖然,我想50毫秒的時間框架的原因是,所以你不會冒險造成ANR或任何滯後。因爲如果你使用Service
,那麼你可以開始一個新的Thread
,它不會阻塞。您將無法在BroadcastReceiver
中啓動新的Thread
,因爲線程之後的代碼將繼續運行,BroadcastReceiver
將會死亡,然後Thread
也會死亡。
- 1. Android:我的鬧鐘管理器廣播接收器不工作
- 2. 使用鬧鐘管理器在Android中設置鬧鐘
- 3. Android鬧鐘廣播/檢測
- 4. android的鬧鐘管理器
- 5. 使用android管理器設置鬧鐘?
- 6. 如何使用android鬧鐘管理器設置多個鬧鐘
- 7. 廣播接收器和鬧鐘管理器
- 8. 在Android中取消鬧鐘管理器
- 9. 如何在android中使用鬧鐘管理器調用過去的鬧鐘?
- 10. 鬧鐘管理器不停止播放
- 11. 如何在android中使用鬧鐘管理器設置星期一鬧鐘?
- 12. 使用鬧鐘管理器和廣播接收器呼叫活動
- 13. android中的鬧鐘管理器
- 14. 關於鬧鐘管理器在android
- 15. 鬧鐘管理器從未在android
- 16. 爲什麼Android的鬧鐘管理器會忘記鬧鐘?
- 17. 在android中使用鬧鐘管理器面對通知問題
- 18. 服務和在android中使用鬧鐘管理器的區別
- 19. 鬧鐘管理器和通知Android
- 20. Android短信鬧鐘管理器問題
- 21. Android鬧鐘管理器不工作
- 22. 設置鬧鐘管理器Android
- 23. Android的鬧鐘管理器和BroadcastReceiver
- 24. 使用Android中的鬧鐘管理器安排任務
- 25. Android上下文問題 - 廣播接收器(鬧鐘管理器)應該使用什麼上下文?
- 26. 設置鬧鐘管理器Android中的時間 - 立即觸發鬧鐘
- 27. 鬧鐘管理器不適用於我
- 28. 鬧鐘管理器OnCreate()隨機調用
- 29. 鬧鐘管理器不起作用
- 30. 如何處理鬧鐘和鬧鐘接收器廣播暫停播放mediaplayer對象
我在問的是服務能夠做到廣播接收機不能做什麼? – Ashwin 2012-04-02 07:20:20
如果你必須做的事情需要超過50毫秒,你應該使用'服務',因爲'BroadcastReceiver'是短命的。因此,對於諸如從服務器輪詢,發送短信並檢查其狀態或播放音頻等內容,您需要一個「服務」。 – Jakar 2012-04-02 09:40:01
廣播接收機意味着什麼?在完成工作之前會死嗎? – Ashwin 2012-04-02 10:27:04