RegisterBroadcastReceiver中的Manifest.xml设置,或通过实现源$ C ​​$ CRegisterBroadcastReceiver、Manifest、xml

2023-09-06 01:41:44 作者:流年的〞真情

我有一点担心的注册的BroadcastReceiver :由于Android的支持非常灵活的,它允许的BroadcastReceiver 2方法注册:在的Manifest.xml设置,并通过实施源$ C ​​$ C:

I have little concern about register BroadcastReceiver: Because Android support quite flexible, it allow BroadcastReceiver register by 2 method: In Manifest.xml setting and Via implement source code:

示例:

❶经的Manifest.xml

<intent-filter>
    <action android:name="YourBroadcastMesssage" />
</intent-filter>

❷的注册想到来源$ C ​​$ C实现:

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

enter code here

★我认为的一个区别就是取消注册能够:

★I think one of difference is unregister able:

实施❶平均总是处理临时用户广播消息。 实施❷的情况下不想处理程序广播消息,可以注销该广播消息 Implement ❶ mean always handler registed broadcast message. Implement ❷ for in case don't want to handler Broadcast message, can unregister that broadcast message

★问:

我仍然不知道什么时候使用❶或❷和哪个好?

I still don't known exactly when to use ❶ or ❷ and which is better?

推荐答案

海事组织,你必须当你想在活动直接一旦广播已经陷入执行的东西(如完成活动注册由code中的的BroadcastReceiver )。

IMO, you must register the BroadcastReceiver from code when you want to execute things in that activity directly once the broadcast has been caught (e.g. finish the activity).

当您要执行其他类型的任务不要求该活动,使用XML设置(例如推出吐司显示一些信息)。

When you want to perform other kind of tasks which don't require the activity, use the XML setting (e.g. launching a Toast to show some info).