Android中sendBroadcast发送广播(二)

发送广播分为:发送系统广播和发送本地广播。

一、发送系统广播:不仅本应用内可以收到广播,其他应用内也可以收到广播。(不安全)

(1)sendBroadcast():发送标准广播。

//自定义一个action
Intent intent = new Intent("com.deepreality.broadcasereceivertestdemo1.MY_BROADCAST");
sendBroadcast(intent);

(2)sendOrderBroadcast():发送有序广播。(有序广播可以在优先级比较高的广播接收器里被截断。1、给每一个广播接收器添加priority优先级;2、在相应的广播接收器的onReceive方法中调用abortBroadcast方法即可截断广播)

//自定义一个action
Intent intent = new Intent("com.deepreality.broadcasereceivertestdemo1.MY_BROADCAST");
//sendBroadcast(intent);
sendOrderedBroadcast(intent, null);
<intent-filter android:priority="100">
    <action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

二、发送本地广播:只有在本应用内才可以收到广播。(安全)

备注:主要就是通过一个本地广播管理器来进行管理。(同样需要注册和取消广播接收器

//本地广播管理器注册广播接收器
localBroadcastManager.registerReceiver(netWorkChangeReceiver, intentFilter);

//本地广播管理器取消广播接收器(在onDestroy方法里调用)
localBroadcastManager.unregisterReceiver(netWorkChangeReceiver);
//自定义一个action
Intent intent = new Intent("com.deepreality.broadcasereceivertestdemo1.MY_LOCALBROADCAST");
//创建一个本地广播管理器
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(mContext);
//发送本地广播
localBroadcastManager.sendBroadcast(intent);

猜你喜欢

转载自blog.csdn.net/lpCrazyBoy/article/details/81948558