一、靜態(tài)注冊(cè)廣播
//在清單文件配置<receiver><receiver/>
<receiverandroid:name=".receiver1.BootComleteReceiver"
android:enabled="true"? ?
android:exported="true">? ?
<intent-filter>? ? ? ?
<action? android:name="android.intent.action.BOOT_COMPLETED" />? ?
</intent-filter>
</receive
二、模擬開(kāi)機(jī)網(wǎng)絡(luò)狀態(tài)
/**
* 廣播接收器:模擬動(dòng)態(tài)監(jiān)聽(tīng) :網(wǎng)絡(luò)變化(系統(tǒng)廣播)
創(chuàng)建一個(gè)Receiver對(duì)象,繼承BroadcastReceiver
*/
public class NetWorkChangeReceiver? extends BroadcastReceiver {
@Override
? ? public void onReceive(Context context, Intent intent) {
//獲取網(wǎng)絡(luò)管理器類(lèi)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
//網(wǎng)絡(luò)信息
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo!=null && activeNetworkInfo.isAvailable()){
Toast.makeText(context,"有網(wǎng)",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context,"沒(méi)網(wǎng)",Toast.LENGTH_SHORT).show();
?????????????? }
??????? }
}
//模擬完畢后要在Activity中注冊(cè)廣播
//注冊(cè)廣播
netWorkChangeReceiver = newNetWorkChangeReceiver();
//廣播接收器
IntentFilter intentFilter = newIntentFilter();//意圖過(guò)濾器intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");//接受網(wǎng)絡(luò)變化registerReceiver(netWorkChangeReceiver, intentFilter);//注冊(cè)廣播? 誰(shuí)接? 誰(shuí)收
//有注冊(cè)就有取消注冊(cè)
protected void onDestroy() {
super.onDestroy();
//注銷(xiāo)廣播
? ? unregisterReceiver(netWorkChangeReceiver);
}
三、動(dòng)態(tài)注冊(cè)
//1.首先創(chuàng)建幾個(gè)receiver對(duì)象,在清單文件里會(huì)生成對(duì)應(yīng)的<receiver><receiver/>? ,粗體部分則為自定義.name
<receiver
android:name=".receiver2.MyReceiver1"
android:enabled="true"? ?
android:exported="true">? ?
<intent-filter android:priority="80">? ? ? ?
<action? android:name="com.jiyun.action.ABC" />? ?
</intent-filter>
</receiver>
//2.代碼實(shí)現(xiàn)注冊(cè)
//<1>標(biāo)準(zhǔn)廣播
Intent intent =new Intent("com.jiyun.action.ABC");
intent.putExtra("name" ,"我是廣播傳過(guò)來(lái)的值");???? //廣播同樣可以傳值
sendBroadcast(intent);
//<2>有序廣播——具有攔截廣播的功能
Intent intent1 =new Intent("com.jiyun.action.ABC");
sendOrderedBroadcast(intent1 ,null);
//3.有序廣播的攔截功能
abortBroadcast();//攔截廣播
//4.廣播中非頁(yè)面之間的啟動(dòng)頁(yè)面
Intent intentMain =new Intent(context, MainActivity.class);
intentMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //非頁(yè)面之間啟動(dòng)頁(yè)面, 需要自帶加載任務(wù)棧
context.startActivity(intentMain);