如何在 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
}
[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
}