静态广播不会导致内存泄漏吗?

静态广播不会导致内存泄漏吗?

动态广播需要取消注册,静态广播不需要取消吗?对内存有影响吗?为什么?

正在回答

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

1回答

动态注册广播,因BroadcastReceiver无法被回收,而其又持有Activity的引用(即:onReceive方法中的参数Context),会导致Activity也无法被回收,引起内存泄漏。

静态注册广播,生命周期不仅局限于activity,即使app退出了还是会收到广播,在执行完onReceive()方法后任意时间段内系统会自动销毁,不用我们手动取消注册。如果静态广播过多且系统没有及时销毁也可能会造成内存泄漏,因此Android8.0去掉了很多静态广播。

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
Android数据通信开发与应用2018版
  • 参与学习           人
  • 提交作业       147    份
  • 解答问题       687    个

本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。

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

在线咨询

领取优惠

免费试听

领取大纲

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