广播接收器

前端之家收集整理的这篇文章主要介绍了广播接收器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有序广播

sendOrderedBroadcast()方法接收两个参数,第一个参数仍然是 Intent,第二个参数是一个与权限相关的字符串,这里传入 null就行了。

广播传递的顺序

注册的时候广播设定的priority的优先级


         
 

终止广播

abortBroadcast();

本地广播

主要就是使用了一个LocalBroadcastManager来对广播进行管理
本地广播的优点

  1. 可以明确地知道正在发送的广播不会离开我们的程序,因此不需要担心机密数据泄漏的问题。

  2. 其他的程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患。

  3. 发送本地广播比起发送系统全局广播将会更加高效

` 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. 注册监听网络变化

自定义的类,继承至BroadcastReceiver 
registerReceiver(networkChangeReceiver,intentFilter);
......

2.开机启动

1.添加权限

android.permission.RECEIVE_BOOT_COMPLETED

2.继承广播接收者

3.Manifest中静态注册

 
     
        
 

示例:强制下线

  1. 发送一条广播

  2. 接收到广播后finish掉所有的activity

设置AlertDialog的类型,保证在广播接收器中可以正常弹出

注意:

1.在广播中启动Activity需要添加 FLAG_ACTIVITY_NEW_TASK
2.需要把Dialog的类型设为 TYPE_SYSTEM_ALERT,不然它将无法在广播接收器里弹出
3.需要权限android.permission.SYSTEM_ALERT_WINDOW

[doc]

原文链接:https://www.f2er.com/note/422084.html

猜你在找的程序笔记相关文章