前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sticky Broadcast被禁用的原因

Sticky Broadcast被禁用的原因

作者头像
None_Ling
发布2019-08-02 09:25:28
1.6K0
发布2019-08-02 09:25:28
举报
文章被收录于专栏:Android相关Android相关

背景

在看9.0源码的时候,偶然发现ContentWrapper.sendStickyBroadcast被打上了Deprecated标签。发现从API Level 21之后,就被弃用了。

SendStickyBroadcast

StickBroadcast的特点

  • ActivityManagerService会一直保存最新的StickyBroadcast在System_Server进程中
  • 当有IntentFilter匹配的Receiver注册时,会将最新的Broadcast立即发送给Receiver接收该广播
  • 所有进程在注册的时候,都会收到该广播(不仅仅只是发送者进程能收到,其他进程也可以收到)
  • 所有进程都可以更新StickyBroadcast
  • 发送者需要声明android.permission.BROADCAST_STICKY权限
  • 只有当调用removeStickyBroadcast时,才会被清除

Sticky的广播会被所有进程接收。例如在用户A进程的某个Activity在onResume中注册相关的Receiver,在onPause中注销了相关的Receiver。B进程的某个Activity也进行了同样的操作,那么A和B进程的Activity在回到Resume状态时,就会接收到该广播。

原因

removeStickyBroadcast可知,这一系列的api都被弃用了。

原因是因为这一系列函数簇没有安全性,每个用户都可以访问,每个用户都可以修改,有很大的安全风险。所以官方禁用掉了,推荐使用其他的机制来替代这种方案。

removeStickyBroadcast

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • StickBroadcast的特点
  • 原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档