动态注册与BroadcastReceiver的静态注册

Kri*_*hna 17 android broadcastreceiver android-broadcast

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

1)Static Registration

2)Dynamic Registration

但我怀疑的是,当我们需要使用时Static以及何时需要使用Dynamic

Jit*_*yay 15

我们知道有两种注册方式BroadcastReceiver; 一个是静态的,另一个是动态的.

静态的:

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

动态:

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

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


phd*_*ong 8

1)静态注册

实现在清单中,android系统可以启动进程并运行你的boardcast接收器.一个例子就像你想要从系统或其他方面进入新意图时更新你的数据.你需要注意安全问题.

2)动态注册

实现是在java代码中,只有当您的应用程序运行到该注册行时,Boardcast接收器才会运行.因此,如果您只想在某些条件下启动Boardcast接收器,那么您通常希望使用此功能.


Pun*_*rma 7

最简单的决定方法是:

如果您希望您的应用程序即使关闭应用程序也能收听广播,请转到静态广播接收器

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

例子:

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

任何使用 OTP 的 App,都需要在 App 运行时才能收听短信。去动态。