2015年5月15日 星期五

[Android] BroadcastReceiver - 開機就執行(RECEIVE_BOOT_COMPLETED)

有些時候,我們會希望某些程式或Service,隨時都在使用者的背景執行,

可是又不能要求使用者在每次重開機後就叫他去開我們的App,

此時就可以利用BroadcastReceiver來達成我們要的需求。

假設你對BroadcastReceiver還不太熟悉的話,可以參考上一篇文章來了解基本的運作方式

[Android] BroadcastReceiver - 廣播接收器

當設備重開機完成後,作業系統會發一個廣播說我已經重開囉

我們只要透過BroadcastReceiver來接收這則廣播,就可以達到我們要的效果。

首先先在AndroidManifest.xml加入這行

此時如果你去查看你應用程式的資訊,會多一個權限











如此一來就可以接收剛才提到的系統廣播。

BroadcastReceiver必須透過字串來辨識是哪則廣播,而重開機完成的字串是這個

android.intent.action.BOOT_COMPLETED

因此我們只要創建一個BroadcastReceiver,監聽到這則廣播,就可以了。

監聽到的時候,可以執行Activity,或Service。

如果你要啟動一個Activity,別忘了加入這行喔。
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
當然別忘了在你的AndroidManifest.xml註冊這個Receiver

如此一來,你就學會如何一開機就讓使用者執行一個程式了。