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




在我的Android应用程序中,我有一个名为App的主要活动和一个名为SmsReceiver的BroadcastReceiver。在onReceive()SmsReceiver方法中,我想捕获一条SMS并将其内容发送回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);
}

最佳答案

如果您只想在活动没有被破坏时捕获事件,那么将广播接收器放入活动中就足够了。

如果您想收看所有广播,即使您的活动尚未开始,也请查看Android Services

关于您的特定错误,在这里粘贴如何?也可能是您的代码?

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

10-12 02:17