目录:
1.广播机制简介
2.接收系统广播
3. 发送自定义广播
4.使用本地广播
5.广播实践 — 实现强子下线功能
6.Git 时间 — 版本控制工具(203)
1.广播机制简介
灵活:Android 每个应用都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,广播可能来源于系统,可能来源于其他应用。
Android 提供了一套完整的 API ,允许应用自由地发送和接收广播。
发送广播 — 借助 Intent
接收广播 — 广播接收器 (Broadcast Receiver)
广播类型
标准广播 和 有序广播
标准广播:
完全异步执行的广播,广播发出后,所有广播接收器几乎同时接受此广播消息,因此无先后顺序。
效率高,但无法被截断。
有序广播:
同步执行的广播,广播发出后,同一时刻只会一个广播接收器能收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才继续传递。
所以,此时的广播接收器是有先后顺序的,优先级高的就先接收到广播消息,并且前面的广播接收器可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了。
2.接收系统广播
比如 手机开机完成后会发出一条广播,电池电量变化,时间或区域的改变
注册广播的方式一般有两种,在代码中注册(动态注册) 和 在AndroidManifest.xml 中注册(静态注册)
如何创建一个广播接收器? 创建一个新的类,让它继承自 Broadcast Receiver ,并重写父类的 onReceive() 方法就行了。 当有广播来时,onReceive() 方法就会得到执行,具体的逻辑就可以在这个方法中处理。
2.1 动态注册监听网络变化
(183)
动态注册 的广播接收器可以自由地控制注册与注销,在灵活性方面有很大的优势,缺点是必须要在程序启动后才能接收到广播,因为注册的逻辑是写在 onCreate() 方法中的。
2.2 静态注册实现开机启动
程序未启动就可以接收到广播。
(185)
注意点:不要在 onReceive() 方法中添加过多的逻辑或者进行任何耗时的操作,因为在广播接收器中是不允许开启线程的,当 onReceive() 方法 运行较长时间而没有结束时,程序就会报错。
因此,广播接收器更多的是扮演一种打开程序其他组件的角色,比如创建一条状态栏通知,或者启动一个服务等。
3. 发送自定义广播
标准广播 和 有序广播
3.1 发送标准广播
发生广播之前,需先定义一个广播接收器来准备接收此广播才行,新建类(MyBroadcastReceiver),当收到自定义广播时,弹出提示信息。然后在 AndroidManifest.xml 中对广播接收器进行修改。让 MyBroadcastReceiver 接收到一条值为 【com.example.yanchengwei.broadcasttest.MY_BROADCAST】 的广播,因此发广播时就需要发出这样的一条广播。在布局文件中定义一个按钮,作为发送广播的触发点。按钮的点击事件里加入了发送自定义广播的逻辑。首先构建出一个 Intent 对象,并把要发送的广播的值传入,然后调用 Context 的 sendBroadcast() 方法将广播发送出去,这样所有监听 【com.example.yanchengwei.broadcasttest.MY_BROADCAST】 这条广播的广播接收器就会收到消息。
3.2 发送有序广播
android priority 属性给广播接收器设置了优先级,优先级比较高的广播接收器就可以先接收广播
在 onReceive() 方法中调用了 abortBroadcast() 方法,就表示将这条广播截断。
4.使用本地广播
之前的广播属于 系统全局广播,即发出的广播可以被其他任何程序接收到,并且也可以接收来自其他任何应用程序的广播。因此,容易引起安全性问题。
为此,引入一套本地广播机制,使用这个机制发出的广播只能在应用程序的内部进行传递,也只接收来自本地应用发出的广播。
用法:主要使用了一个 LocalBroadcastManager. 来对广播进行管理,并提供了发送广播和注册广播接收器的方法。
本地广播是无法通过静态注册的方式来接收的。
优势:
正在发生的广播不会离开我们的程序,因此不必担心机密数据泄露。
其他程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患。
发送本地广播比发送系统全局广播更加高效。
5.广播实践 — 实现强子下线功能
6.Git 时间 — 版本控制工具(203)
以上
写在最后:
沉思放在晚上,现在只想说一句:音乐真的有奇妙的治愈能力
还有一个核心要点,首先你要对你自己有自信,即使学校那边不放,也不要太懊恼失去了如此好的转正机会,有失必有得,有得必有失。起码一个多月,成长了好多,明确了很多东西,正视了爱情观,嗯,不要把自己的负面情绪传达给宝宝,自己消化,给她看到一个自信满满靠谱十足的你自己!让她对你有期待,而你,也允过她,会来找她的。
嗯,她说过:你可一定要来啊。嗯,我答应腻。