java - 如何在 Activity 中使用多个广播?

标签 java android android-broadcast

[服务.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/

相关文章:

java - Eclipse 在同一方法中访问变量的奇怪行为

android - 我可以为 ACTION_MEDIA_SCANNER_SCAN_FILE Intent 使用什么权限?

javascript - 如何在 JavaScript 中使用 ISO-8859-15 字符集生成字符串?

java - java的TreeMap的效率是基于键还是值的数量?

java - 在 Gurobi 中求解混合整数二次规划 (MIQP) 的问题

Android:创建一个在启动它的应用程序中存活的服务

java - JPA 禁用自动保存

java - 通过串行接收到奇数字符 ☐[J

android.net.conn.CONNECTIVITY_CHANGE 广播接收器不会在 JellyBean 中触发以进行 VPN 连接和断开连接

java - 即使应用程序被杀死,我怎样才能让我的应用程序运行?当它从最近的应用程序中删除时,就被杀死了