我有一個AlarmManager,每X分鐘觸發一次報警。廣播接收機或服務?
當警報觸發時,我正在做一些操作,如讀取一個小文件和更新SharedPreferences。
在這種情況下推薦使用什麼操作?
服務似乎很合適,但由於這些操作相對較短,可能BroadcastReceiver更好(更輕?)?
看來,BroadcastReceiver和一個服務都在同一個進程和UI線程上運行,唯一的區別是Android如何以及何時會殺死它們。那是對的嗎?
據我瞭解,AlarmManger可以調用接收器或服務(或一個活動,但現在不相關)。即使我的應用程序未運行,我的鬧鐘也會始終運行。因此,無論哪種方式(服務或廣播接收器)都會啓動我的進程,如果這是我的應用程序未運行。警報可以每10秒鐘關閉一次,這取決於用戶。所以在這種情況下,IntentService將不得不每10秒啓動一個線程。這不是對系統的「苛刻」嗎?謝謝。
在我的應用程序中,我用AlarmManagar使用BroadcastReceiver。不要沒有更好的服務或BroadcastReceiver。@Ran – PSK
爲了記錄,如果你想嘗試,在兩者之間「切換」並不困難。創建和使用服務是相對平凡:) –
@MartínMarconcini,我同意,但我不知道我應該測量什麼來決定哪一個更好:)顯然,兩者都可以正常工作。 – Ran