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/