首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BroadcastReceiver的动态注册与静态注册

BroadcastReceiver的动态注册与静态注册
EN

Stack Overflow用户
提问于 2014-04-23 10:43:15
回答 5查看 18.3K关注 0票数 20

我们都知道我们注册了两种类型的BroadcastReceiver

1)Static Registration

2)Dynamic Registration

但我怀疑我们何时需要使用Static,何时需要使用Dynamic

EN

回答 5

Stack Overflow用户

发布于 2014-04-23 11:08:15

众所周知,注册BroadcastReceiver有两种方法:一种是静态,另一种是动态

静态:

  1. 在您的报表文件中使用标记。(AndroidManifest.xml)
  2. 并非所有事件都可以静态注册。
  3. 有些事件需要权限。

动态:

  1. 使用Context.registerReceiver()动态注册实例。
  2. 注:暂停时取消注册。

当我们进行动态注册时(即在运行时),它将与应用程序的生命周期相关联。如果我们这样做,静态注册(即编译时),我们的应用程序没有运行,将创建一个新的进程来处理广播。

票数 20
EN

Stack Overflow用户

发布于 2015-06-22 23:40:06

1)静态注册

实现是显式的,android系统可以启动进程并运行板播接收器。例如,当系统或其他方面出现新的意图时,您想要更新您的数据。你也要注意安全问题。

2)动态注册

实现是在java代码中实现的,只有当应用程序运行到注册行时,板广播接收器才会运行。因此,如果只想在一定条件下打开板播接收器,则主要希望使用此方法。

票数 8
EN

Stack Overflow用户

发布于 2018-02-12 07:25:46

最简单的决定方法是:

如果您希望应用程序能够收听广播,即使应用程序已经关闭,也可以选择静态广播接收方

如果您希望您的应用程序只侦听特定的实例(当应用程序运行时),那么选择Dynamic BroadCast Receiver

示例:

任何电池监控应用程序都需要听所有的广播意图(相关电池),即使应用程序没有运行。所以这里我们需要静态的

任何使用OTP的应用程序,只需要在应用程序运行时才能收听Sms。开始动感。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23241931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档