有序广播
sendOrderedBroadcast()方法接收两个参数,第一个参数仍然是 Intent,第二个参数是一个与权限相关的字符串,这里传入 null就行了。
广播传递的顺序
注册的时候广播设定的priority的优先级
终止广播
abortBroadcast();
本地广播
主要就是使用了一个LocalBroadcastManager来对广播进行管理 本地广播的优点
可以明确地知道正在发送的广播不会离开我们的程序,因此不需要担心机密数据泄漏的问题。
其他的程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患。
发送本地广播比起发送系统全局广播将会更加高效
` LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
1.发送本地广播
Intent intent = new Intent("com.example.broadcasttest. LOCAL_BROADCAST");
localBroadcastManager.sendBroadcast(intent); // 发送本地广播
2.注册本地广播
3.注销本地广播
localBroadcastManager.unregisterReceiver(localReceiver);
注意:本地广播是无法通过静态注册的方式来接收的
监听系统广播
1.网络变化
1. 添加网络权限
2. 继承广播接收者
3. 注册监听网络变化
2.开机启动
1.添加权限
android.permission.RECEIVE_BOOT_COMPLETED
2.继承广播接收者
3.Manifest中静态注册
示例:强制下线
发送一条广播
接收到广播后finish掉所有的activity
设置AlertDialog的类型,保证在广播接收器中可以正常弹出
注意:
1.在广播中启动Activity需要添加 FLAG_ACTIVITY_NEW_TASK 2.需要把Dialog的类型设为 TYPE_SYSTEM_ALERT,不然它将无法在广播接收器里弹出 3.需要权限android.permission.SYSTEM_ALERT_WINDOW
[doc] (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|