第一种:代码注册
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, "收到来自某个类发送的广播",Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//代码注册广播要手动销毁
unregisterReceiver(myReceiver);
}
}
第二种:在AndroidManifest.xml中注册
<application>
<receiver android:name=". MyReceiver " >
<intent-filter>
<action android:name="com.example.broadcasttest.MY_BROADCAST"/>
</intent-filter>
</receiver>
</application>
区别:在AndroidManifest.xml中注册广播一旦应用程序被安装到手机无论程序是否处于活动状态都会进行监听;使用代码进行注册当应用程序被关闭后就不在监听