Android:如何将对象从 BroadcastReceiver 发送到正在运行的 Activity

标签 android android-activity

我有一个扩展 BroadcastReceiver 的类,可以读取新的短信

public class SmsReceiver extends BroadcastReceiver
{
   // reading sms
   // I want to send the sms text to my main activity
}

并且在同一个应用程序中有另一个类是我的主要 Activity。 因此,当我收到新的短信时,我想将其内容发送到我已经在运行的主要 Activity 并显示它。 我怎样才能做到这一点? 我会感谢一些代码示例:)

最佳答案

我可以建议你两种可能性

  1. 从这个接收器发送新的广播到一个在你的 Activity 中注册的新接收器
  2. 在您的 Activity 中注册此接收器并减少麻烦

我想选项二更合适

这就是您可以在 Activity 类中注册广播接收器的方式:

IntentFilter filter = new IntentFilter();

public void onResume(){
    filter.addAction("action_string_1");
    filter.addAction("action_string_2");

    registerReceiver(receiver, filter);
}

public void onPause(){
    unregisterReceiver(receiver);
}

BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();

            if(action.equals("action_string_1")){
                //do something here
            }
            else if(action.equals("action_string_2")){
                //do somethign here
            }
        }
    };

关于Android:如何将对象从 BroadcastReceiver 发送到正在运行的 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197969/

相关文章:

java - 使用两个 Activity [ANDROID] 显示消息输出的问题

java - 如何从字符串的开头删除括号中的文本

android - 为什么在 Activity 之间移动时总是执行oncreate?

跨 Activity 的Android float View

android - 单击通知恢复 Activity

java - Android:关于打开 Activity 和按钮的说明

android - 在BottomSheetDialogFragment 中以编程方式设置查看高度

Android textwatcher倒计时

android - ListView 不触发 setOnLongClickListener,只触发 setOnItemClickListener

java - 如何在 Android 中使用循环数据创建 JSON 数组