如何在 activity 中使用多个广播?

How can I use more than one Broadcast in activity?

[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);

    }
};

以上代码复合使用BroadCast Android Activity.

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

中接收它

还好还可以,不过我想在这个activity里多用一个BR。

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

中接收

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

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

然后您可以为该新操作注册 activity:

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
}