Manifest.xml设置中的RegisterBroadcastReceiver或实现源代码

Ngu*_*Dat 17 android

我很少关注注册BroadcastReceiver:因为Android支持相当灵活,它允许BroadcastReceiver注册2方法:在Manifest.xml设置和Via实现源代码:

例:

通过Manifest.xml

<intent-filter>
    <action android:name="YourBroadcastMesssage" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

注册源代码思想实现:

IntentFilter filter = IntentFilter("BroadcastMessage");
filter.addAction("BroadcastMessage");
context.registerReceiver(BroadcastListener, filter);

enter code here
Run Code Online (Sandbox Code Playgroud)

★我认为其中一个区别是取消注册:

  1. 实现❶意味着总是处理程序注册广播消息.
  2. 实现❷以防万一不想处理广播消息,可以取消注册该广播消息

问题:

我还不知道何时使用❶或❷哪个更好?

Cri*_*ian 7

IMO,当您想要在捕获广播后直接执行该活动中的内容时(例如,完成活动),您必须从代码注册BroadcastReceiver.

如果要执行不需要活动的其他类型的任务,请使用XML设置(例如,启动Toast以显示某些信息).