第一行代碼-廣播接收者筆記

1. 什麼是廣播

a. android 每一個應用都可以註冊去接收系統或者其他應用發出的廣播,自己也可以發廣播

b. 廣播分爲標準廣播(無序) 和 有序廣播

b.1 發送標準廣播

Intent intent=new Intent("自定義字符串");

sendBroadCast(intent);

b.2 發送有序廣播

Intent intent=new Intent("自定義字符串");

sendOrderBroadcast(intent,null//權限相關字符串)

這樣一來,在receiver裏 android:priority="100" 表示先後權利

還可以在onReceive()中abordBroadcast();中斷廣播,不會再繼續傳遞下去

2. 例

a. 動態註冊系統網絡變化,提示用戶是否有網絡//靜態註冊也可以實現

1.定義廣播接受者類繼承BroadcastReceiver類 重寫onReceive()

2.定義IntentFliter 和廣播接收者類對象,intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");

registerReceiver(netWorkChangeReceiver,intentFilter)

onReceive(Context context,Intent,intent){

ConnectivityManager cm=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

NetWorkInfo info=cm.getActivityNetworkInfo();

if(info!=null&&info.isAvailable){

 

}else{

}

}

加上用戶權限ACCESS_NETWORK_STATE

b. 靜態註冊接收開機廣播

1. 加上用戶權限RECEIVE_BOOT_COMPLETE

2. <receiver>

android:enable="true"

android:exported="true"

<intent-filter>

<action android:name="android.intent.action.BOOT_COMPLETE"/>

</intent-filter>

</receiver>

3. 使用本地廣播

1. LocalBroadCastManager lbm=LocalBroadCastManager.getInstance(this);

2. 同時都調用lbm 的註冊 和 發送

3. 優點三個

高效,廣播不會離開本應用,也不會接受外部廣播

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章