BroadcastReceiver 应该在活动中声明吗?

Should BroadcastReceiver be declared inside activities?

我想知道在这两者之间处理 BroadcastReceiver 创建的更好更简洁的设计方法是什么:

  1. 在 Activity/Fragment 中直接声明 BroadcastReceiver 并在那里覆盖 onReceived 方法。

  2. 在包 "receiver" 中创建另一个自定义接收器 class,扩展 BroadcastReceiver class 并覆盖 onReceive .然后,您在 Activity/Fragment.

  3. 中实例化自定义接收器 class

有两种类型的广播接收器

1)在activity

中注册的动态广播接收器

2)在清单文件中注册或声明的静态广播接收器,带有具有特定操作的接收器标签(何时触发接收器)

用途:例如说接收消息

1)Dynamic Broadcast Receiver用于接收Broadcast intent主要是刷新通过send Broadcast方法发送的消息

2)Static Broadcast Receiver 用于接收 message.Here 具有 SMS 接收操作的 Registered Receiver 将接收消息,稍后将其发送到 activity

最后看开发者用哪个,什么时候用根据需求

没有更简洁的方法,这取决于您的编码方式。

遵循 DRY 原则,我只会在发现不同 Activites 中需要它们时才扩展 BroadcastReceiver