BroadcastReceiver的两种注册方式

第一种:代码注册

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中注册广播一旦应用程序被安装到手机无论程序是否处于活动状态都会进行监听;使用代码进行注册当应用程序被关闭后就不在监听

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。