本地广播和全局广播都是用BroadcastReceiver
两者差别:
1.注册
2.intent的发送
3.要导包
4.销毁(解注册)
这里说的被废除只是不推荐用,不是不能用,还是可以继续用的
同时如果要用的话,要导入androidx.localbroadcastmanger:localbroadcastmanger:1.1.0
在如下所示的位置
本地广播和默认的其实变化不大,只是类的引用复杂一点
广播发送器名.unregisterReceiver(//广播接收器名)
广播发送器名.sendBroadcast(intent);//不能直接send。。。(intent)
在oncreate里面注册广播接收器还要导包
这是整体的注册代码:
还要注册的销毁也不太一样
下面是可能遇到的一些小问题:
1.导入的包的sdk版本比AS自身的sdk版本改
改本身项目中build.gradle文件中的sdk版本(问题和解决方法如图)
2.要注意:发送全局广播要想其他app接收到这个广播,就要让其他app保持活跃状态(打开且要时不时打开一下),不然这个app的生命周期会自动销毁
3.使用打印日志
这个过滤代码可以是字符串变量