如何在活动中使用多个广播?

时间:2015-02-06 00:31:38

标签: java android android-broadcast

[Service.java]

Intent intent = new Intent();
intent.setAction("sample");
intent.putExtra("timer_real", hms);
sendBroadcast(intent);

[Activity.java]

public void onResume() {
    super.onResume();
    IntentFilter filter = new IntentFilter();
    filter.addAction("sample");
    registerReceiver(sn_english, filter);
}

public void onPause() {
    super.onPause();
    unregisterReceiver(sn_english);
}

BroadcastReceiver sn_english= new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {


        String timer_real = intent.getStringExtra("timer_real");
        textTimer.setText(timer_real);

    }
};

以上代码是在Android Activity中使用BroadCast的复合代码。

如您所见,我们在Servive.java中发送BR,并在Activity.java中接收它

幸运的是,它通常有效,但我想在此活动中再使用一个BR。

那么,我该如何使用呢?第二个也是在Service.java中发送并在Activity.java中接收

1 个答案:

答案 0 :(得分:3)

在第二个sendBroadcast上为您的意图设置不同的操作。示例:

Intent intent = new Intent();
intent.setAction("second_intent);
sendBroadcast(intent);

然后,您可以为新操作注册您的活动:

IntentFilter filter = new IntentFilter();
filter.addAction("sample");
filter.addAction("second_intent");
registerReceiver(sn_english, filter);

在你的onReceive()方法中,只需对动作执行if / else:

if(intent.getAction().equals("sample"))
{
// first intent
}
else if(intent.getAction().equals("second_intent"))
{
// second intent
}