我怎样才能通知广播接收机正在运行的活动?

我有一个活动,它需要响应一个广播事件。 由于一个活动不能同时是一个广播接收机,所以我制作了一个广播接收机。

我的问题是:如何通知广播接收机的活动? 我相信这是一个普遍的情况,那么有没有这样的devise模式?

Solutions Collecting From Web of "我怎样才能通知广播接收机正在运行的活动?"

广播是通知。 :)如果你想说,根据收到的广播开始一个活动或服务等,那么你需要一个独立的广播接收器,你把它放在你的清单文件中。 但是,如果您希望自己的活动本身对广播做出响应,则可以在活动中创build广播接收器的实例,并在其中进行注册。

我使用的模式是:

public class MyActivity extends Activity { private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(...) { ... } }); public void onResume() { super.onResume(); IntentFilter filter = new IntentFilter(); filter.addAction(BROADCAST_ACTION); this.registerReceiver(this.receiver, filter); } public void onPause() { super.onPause(); this.unregisterReceiver(this.receiver); } } 

所以,通过这种方式,当创build类时(也可以在onCreate中),实例化接收器。 然后在onResume / onPause处理注册和注销接收者。 然后在接收者的onReceive方法中,我会做任何必要的事情,以使得当它接收到广播时,以我想要的方式作出反应。