[服务.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 中接收它
幸运的是,它工作正常,但我想在这个 Activity 中多使用一个 BR。
那么,我该如何使用它呢?第二个也是在Service.java中发送,在Activity.java中接收
最佳答案
在第二个 sendBroadcast 上为您的 Intent 设置不同的操作。示例:
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
}
关于java - 如何在 Activity 中使用多个广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28356637/