java - 如何将数据从 BroadcastReceiver 传递到主 Activity ?

标签 java android android-intent broadcastreceiver

Possible Duplicate:
How do I pass data from a BroadcastReceiver through to an Activity being started?

在我的 Android 应用程序中,我有一个名为 App 的主要 Activity 和一个名为 SmsReceiver 的广播接收器。里面onReceive()方法SmsReceiver ,我想捕获一条短信并将其内容发送回 App 。但我不知道该怎么做。这可以通过 App 中的一个类来完成吗? ?我尝试这样做,并将该类的名称添加到 AndroidManifest 中,但在尝试调用它时,应用程序崩溃并出现错误,提示该类无法实例化。

(我知道这个问题之前已经发布过,但我还没有看到任何令人满意的答案。)

编辑,以说明我尝试过的解决方案:

在 AndroidManifest 中,我添加了以下内容:

    <receiver android:name=".App.SmsHandler" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

在 App 类中,我添加了:

public class SmsHandler extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        // Stuff here
    }
}

public static final String TEXT_INTENT = "textintent";

我尝试使用以下代码调用它(在 SmsReceiver 中,但这导致应用程序崩溃):

private void forwardSms(Message message, Context context) {
    Intent myIntent = new Intent(MsgWallApp.TEXT_INTENT);

    Bundle myData = new Bundle();
    myData.putString("sender", message.getSender());
    myData.putString("text", message.getText());
    context.sendBroadcast(myIntent);
}

最佳答案

如果您只想在 Activity 未销毁时捕获事件,那么在 Activity 内放置广播接收器就足够了。

如果您想捕获所有广播,即使您的 Activity 尚未开始,请查看 Android Services .

关于您的具体错误,将其粘贴到此处如何?也许还有你的代码?

关于java - 如何将数据从 BroadcastReceiver 传递到主 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13011769/

相关文章:

android - Activity 未找到异常 : No Activity found to handle Intent

java - 实现一个可以从给定数据文件中读取一行的类

java - 如何在 Java 中循环遍历文本文件,将 7 行对象添加到对象数组中?

java - 带启动 spring &java 13 的 mapstruct 1.3.1

java - 无法将字符串对象从 DialogFragment 传递到 MainActivity

java - 为什么我们不能修改R.java?

android - 如何从 SDCard 加载图像到 Image Switcher?

android - INTENT_ACTION_STILL_IMAGE_CAMERA - PictureCallback 或拦截拍照事件

android - stopService(intent_with_extras) - 你如何从服务中读取这些额外内容以停止?

php - 当我尝试从 android 发送到 mysql 数据库时,错误索引未定义