Anroid8.0新特性之BroadcastReceiver

今天在写关于Broadcast的demo时,遇到了一些问题:我的测试机是8.0的系统,在测试的时候发现Broadcast没有任何反应。

刚开始以为是写的代码的问题,然后看书,发现没有任何问题,后来我就又找了个测试机,是6.0的系统,运行后发现没有任何问题。就感觉是Android的版本问题,上网查了官方的文档,发现果真是。

也就是说,在Android 8.0的平台上,应用不能对大部分的广播进行静态注册,也就是说,不能在AndroidManifest文件对有些广播进行静态注册,这里必须强调是有些广播,因为有些广播还是能够注册的

网站链接:https://developer.android.google.cn/about/versions/oreo/android-8.0.html

解决办法:

在Broadcast内动态注册广播接收器

//过滤器
mIntentFilter = new IntentFilter("test.test1.broadcast.see");
//创建广播接收者的对象
mMyBroadcastRecvier =  new test_BroadcastReceiver();
//注册广播接收者的对象
registerReceiver(mMyBroadcastRecvier, mIntentFilter);

猜你喜欢

转载自blog.csdn.net/Zx0307/article/details/80911825