Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android實現監聽開機廣播和關機廣播示例

Android實現監聽開機廣播和關機廣播示例

編輯:Android開發實例

需求描述:有些時候,我們需要我們的程序在開機後能自動運行,在系統即將關閉時,能寫入一些記錄到指定的文件裡。

一、開機廣播監聽:

        Android系統啟動完成後會發出啟動完成廣播(android.intent.action.BOOT_COMPLETED),所有注冊了接收啟動完成廣播的接收器(BroadcastReceiver)都會收到此廣播。

       1、在AndroidManifest.xml文件裡添加授予應用程序訪問系統開機事件的權限

  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

       2、編寫系統發出的開機啟動完成廣播的接收器。自定類繼承BroadcastReceiver類,代碼如下:

  1. package com.android.test;  
  2.  
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.util.Log;  
  7.  
  8. /**  
  9.  * 類名:BootBroadcastReceiver   
  10.  * 功能描述:啟動時系統發出的廣播的接收器  
  11.  * #<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />  
  12.  * @author android_ls  
  13.  */ 
  14. public class BootBroadcastReceiver extends BroadcastReceiver {  
  15.  
  16.     private static final String TAG = "BootBroadcastReceiver";  
  17.  
  18.     private static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";  
  19.  
  20.     @Override 
  21.     public void onReceive(Context context, Intent intent) {  
  22.         Log.i(TAG, "Boot this system , BootBroadcastReceiver onReceive()");  
  23.  
  24.         if (intent.getAction().equals(ACTION_BOOT)) {  
  25.             Log.i(TAG, "BootBroadcastReceiver onReceive(), Do thing!");  
  26.         }  
  27.     }  
  28. }  

        3、在AndroidManifest.xml文件裡注冊廣播接收器

  1. <receiver android:name="com.android.test.BootBroadcastReceiver" > 
  2.          <intent-filter > 
  3.              <action android:name="android.intent.action.BOOT_COMPLETED" /> 
  4.  
  5.              <category android:name="android.intent.category.HOME" /> 
  6.          </intent-filter> 
  7.      </receiver> 

二、關機廣播監聽:

       Android系統提供了與開機廣播對應的關機廣播,在系統即將關閉時發出此廣播。

       1、編寫在系統即將關閉時發出的廣播的接收器。自定類繼承BroadcastReceiver類,代碼如下:

  1. package com.android.test;  
  2.  
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.util.Log;  
  7.  
  8. /**  
  9.  * 類名:ShutdownBroadcastReceiver  
  10.  * 功能描述:在系統即將關閉時發出的廣播的接收器  
  11.  * @author android_ls  
  12.  */ 
  13. public class ShutdownBroadcastReceiver extends BroadcastReceiver {  
  14.  
  15.     private static final String TAG = "ShutdownBroadcastReceiver";  
  16.       
  17.     private static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";  
  18.       
  19.     @Override 
  20.     public void onReceive(Context context, Intent intent) {  
  21.         Log.i(TAG, "Shut down this system, ShutdownBroadcastReceiver onReceive()");  
  22.           
  23.         if (intent.getAction().equals(ACTION_SHUTDOWN)) {  
  24.             Log.i(TAG, "ShutdownBroadcastReceiver onReceive(), Do thing!");  
  25.         }  
  26.     }  
  27. }  
  28.  

         2、在AndroidManifest.xml文件裡注冊廣播接收器

  1. <receiver android:name="com.android.test.ShutdownBroadcastReceiver" > 
  2.          <intent-filter > 
  3.              <action android:name="android.intent.action.ACTION_SHUTDOWN" /> 
  4.  
  5.              <category android:name="android.intent.category.HOME" /> 
  6.          </intent-filter> 
  7.      </receiver> 

注:開機關機操作有兩種方式:1、重新啟動,關閉後立刻又開機。這種情況下,開機啟動完成和在系統即將關閉時發出的廣播,都可以接收到。2、關機,這時的在系統即將關閉時發出的廣播接收不到(我測試時遇到的情況)。開機,開機啟動完成發出的廣播時可以接收到的。

轉自:http://blog.csdn.net/android_ls/article/details/8605915

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved