Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發實踐 BroadcastReceiver

Android開發實踐 BroadcastReceiver

編輯:關於Android編程

BroadcastReceiver用於監聽系統全局的廣播消息,接受程序所發出的Broadcast Intent。

1.Broadcast和BroadcastReceiver

Broadcast被分為兩種:Normal Broadcast(普通廣播);Ordered Broadcast(有序廣播);
Context提供了對應的方法發送廣播這兩種廣播:
sendBroadcast():發送Normal Broadcast
sendOrderedBroadcast():發送Ordered Broadcast(對於Ordered Broadcast,系統會根據接受者聲明的優先級別按順序逐個執行接受者,優先接受到的Broadcast可以終止Broadcast,調用BroadcastReceiver的abortBroadcast()方法即可終止Broadcast)。

程序啟動BroadcastReceiver需要兩步:
第1步:創建需要啟動的BroadcastReceiver的Intent
第2步:調用Context的sendBroadcast()或者sendOrderedBroadcast()方法來啟動指定的BroadcastReceiver

注意:OnXxxListener只是程序級的監聽器,BroadcastReceiver只是一個系統級的監聽器且擁有自己的進程。

2.發送Broadcast、並使用BroadcastReceiver接受廣播

下面簡單實現了如何發送Broadcast、使用BroadcastReceiver接受廣播:

(1)在Activity中創建一個Intent,並使用該Intent對象對外發送一條廣播

// 創建Intent對象
Intent intent = new Intent();
// 設置Intent的Action屬性
intent.setAction("com.gc.action.CRAZY_BROADCAST");
intent.putExtra("msg", "Test Message");
// 發送廣播
sendBroadcast(intent);

(2)該程序使用到的BroadcastReceiver代碼如下:

public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("接受到的Intent的Action:" + intent.getAction());
        System.out.println("消息內容是:" + intent.getStringExtra("msg")");
    }
}

(3)配置上面的BroadcastReceiver應該監聽的Action字符串的Intent
有兩種方式進行配置:
第一種:在代碼中配置:

IntentFilter filter = new IntentFilter("com.gc.action.CRAZY_BROADCAST");
MyReceiver receiver = new MyReceiver();
registerReceiver(receiver, filter);

第二種:在AndroidManifest.xml文件中配置


    
        
            

3.接受系統廣播消息

下面是常見Action常量,更多的請參考官方文檔中關於Intent的說明(docs/reference/android/content/Intent.html)。

Action常量 對應字符串 簡單說明 ACTION_TIME_CHANGED android.intent.action.TIME_SET 系統時間被改變 ACTION_DATE_CHANGED android.intent.action.DATE_CHANGED 系統日期被改變 ACTION_BOOT_COMPLETED android.intent.action.BOOT_COMPLETED 系統啟動完成 ACTION_SHUTDOWN android.intent.action.ACTION_SHUTDOWN 系統被關閉 ACTION_BATTERY_LOW android.intent.action.BATTERY_LOW 電池電量低 ACTION_POWER_CONNECTED android.intent.action.ACTION_POWER_CONNECTED 系統連接電源 ACTION_POWER_DISCONNECTED android.intent.action.ACTION_POWER_DISCONNECTED 系統與電源斷開    
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved