【方案汇总】BroadcastReceiver静态内部类注册的问题
16lz
2021-01-24
正常情况下,静态注册广播使用如下方式:
<!-- 注册自定义静态广播接收器 --><receiver android:name=".StaticReceiver"><intent-filter><action android:name="com.bn.pp2.staticreceiver" /></intent-filter></receiver>
这样静态注册的广播,就算app的进程没有开启,或者app没有启动过。只要intentfilter匹配了com.bn.pp2.staticreceiver,就会执行StaticReceiver的onReceiver方法。
另外,还有一种静态注册的方法,使用静态内部类。
<!-- 注册自定义静态内部广播接收器 --><receiver android:name=".Outerclass$StaticInnerReceiver"><intent-filter><action android:name="com.bn.pp2.staticreceiver" /></intent-filter></receiver>这里,需要注意$的使用。
但是,使用这种方式会带来一个问题:如果app的进程不存在,StaticInnerReceiver的onReceive根本不会被调用。
更多相关文章
- Android定时器实现的几种方法
- android service 之 Binder
- Missing styles. Is the correct theme chosen for this layout?
- Android(安卓)中Handler引起的内存泄露
- 《疯狂Android讲义》笔记整理
- Android(安卓)使用CMake 编译NDK
- 【CMake】CMake 引入 ( Android(安卓)NDK 构建脚本 | CMake 命令
- MobSF安装使用及过程中遇到的错误
- bindService