有些時(shí)候我們需要我們的程序在系統(tǒng)開機(jī)后能自動(dòng)運(yùn)行,這個(gè)時(shí)候我們可以使用Android中的廣播機(jī)制,編寫一個(gè)繼承BroadcastReceiver的類,接受系統(tǒng)啟動(dòng)關(guān)閉廣播。代碼如下:
-
-
-
-
-
-
- public class BootCompletedReceiver extends BroadcastReceiver
- {
-
- @Override
- public void onReceive(Context context, Intent intent)
- {
- Log.i("MainActivity", "系統(tǒng)啟動(dòng)完畢");
- }
- }
然后在AndroidManifest.xml文件中進(jìn)行注冊(cè):
- <receiver android:name=".BootCompletedReceiver">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED"/>
- </intent-filter>
- </receiver>
同時(shí)應(yīng)添加所需要的權(quán)限:
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
既然Android系統(tǒng)在啟動(dòng)完畢后會(huì)發(fā)送廣播,在系統(tǒng)關(guān)閉時(shí)是否也有對(duì)應(yīng)的廣播呢?通過(guò)查詢幫助文檔,找到了系統(tǒng)關(guān)閉的廣播:
-
-
-
-
-
-
- public class ShutdownReceiver extends BroadcastReceiver
- {
-
- @Override
- public void onReceive(Context context, Intent intent)
- {
- Log.i("MainActivity", "啟動(dòng)關(guān)閉中...");
- }
- }
在AndroidManifest.xml文件中進(jìn)行注冊(cè):
- <receiver android:name=".ShutdownReceiver">
- <intent-filter>
- <action android:name="android.intent.action.ACTION_SHUTDOWN"/>
- </intent-filter>
- </receiver>
是否還需要相應(yīng)的權(quán)限呢?通過(guò)查詢幫助文檔,并沒有找到相關(guān)的權(quán)限,在模擬器中進(jìn)行測(cè)試,當(dāng)系統(tǒng)關(guān)閉后能正常輸出信息。