[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中接收
答案 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
}