第一種:代碼注冊(cè)
public? class? BroadcastActivity? extends? AppCompatActivity {
private final String ACTION_BOOT = "com.example.broadcasttest.MY_BROADCAST";
private IntentFilter? intentFilter;
private MyReceiver? myReceiver;
@Override
?protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_broadcast);
intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
myReceiver=new MyReceiver();
registerReceiver(networkChangeReceiver,intentFilter);
}
private class MyReceiver extends BroadcastReceiver {
@Override
? ? ? ? public void onReceive(Context context, Intent intent) {
? ? ? ? ? //接收后的處理
? ? ? ? ? if(ACTION_BOOT.equals(intent.getAction())){
? ? ? ? ? Toast.makeText(context, "收到來自某個(gè)類發(fā)送的廣播",Toast.LENGTH_SHORT).show();
? ? ? ? }
}
@Override
? ? protected void onDestroy() {
super.onDestroy();
//代碼注冊(cè)廣播要手動(dòng)銷毀
unregisterReceiver(myReceiver);
}
}
第二種:在AndroidManifest.xml中注冊(cè)
<application>
?<receiver android:name=". MyReceiver " >
?<intent-filter>
?<action android:name="com.example.broadcasttest.MY_BROADCAST"/>
?</intent-filter>
?</receiver>
</application>
區(qū)別:在AndroidManifest.xml中注冊(cè)廣播一旦應(yīng)用程序被安裝到手機(jī)無論程序是否處于活動(dòng)狀態(tài)都會(huì)進(jìn)行監(jiān)聽;使用代碼進(jìn)行注冊(cè)當(dāng)應(yīng)用程序被關(guān)閉后就不在監(jiān)聽