关于高版本安卓广播问题

关于高版本安卓广播问题

  1. 在8.0以上的安卓 需要调用intent.setcomponent()方法来指定接收包?我查的。。

  2. 在安卓8.0以上,无法在BroadCastReciver中修改ui?我在它的构造方法中初始化了Mainactivity的弱引用,但是一旦使用weakreference.get()就会报空指针异常。传入TextView使用也会报空指针。反正就是不可以访问控件,请问这是8.0的特性吗,不可以在onReceive更新ui吗

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

1)BroadCastReceiver默认情况下是在主线程执行的,肯定是可以操作UI的,相反如果做耗时较长的操作,最好放在子线程中,以免出现ANR.  2)那是自定义静态广播需要增加的内容,但慢慢的不再建议使用静态广播了,建议还是使用动态自定义的广播。如果解决了你的疑惑,请采纳,祝学习愉快~

  • qq_慕少1359793 提问者 #1
    我找到一直为null的原因了,但是不知道为什么,希望老师能简单解释一下 我动态注册的代码的intentfilter中写着 intentFilter.addDataScheme("package"); 然后自定义广播就全部失效了。 删掉就好了
    2020-02-12 19:47:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师