Android動態廣播的注冊與銷毀


一個內部類:BroadcastReceiver的子類,並定義收到廣播之后的操作:

1 class LockScreenBroadcastReceiver extends BroadcastReceiver{
2 
3         @Override
4         public void onReceive(Context context, Intent intent) {
5             //接收到廣播之后的操作
6             KLog.d("收到廣播");
7             LockScreenNightRestActivity.this.finish();
8         }
9     }

定義action和BroadcastReceiver子類對象:

1 //定義關閉此activity的action
2     public static final String NIGHT_REST_ACTIVITY_FINISH = "night_rest_activity_finish";
3     private LockScreenBroadcastReceiver broadcastReceiver;

 

onCreate中注冊:

 1 @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4 
 5         // 1. 實例化BroadcastReceiver的子類對象
 6         broadcastReceiver = new LockScreenBroadcastReceiver();
 7         IntentFilter intentFilter = new IntentFilter();
 8         // 2. 設置接收廣播的類型
 9         intentFilter.addAction(NIGHT_REST_ACTIVITY_FINISH);// 只有持有相同的action的接受者才能接收此廣播
10         // 3. 動態注冊:調用Context的registerReceiver()方法
11         registerReceiver(broadcastReceiver, intentFilter);
12     }

onDestroy中注銷:

1  //銷毀onResume()中的廣播
2         unregisterReceiver(broadcastReceiver);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM