2011-04-18 69 views
1

我写了短信应用程序,我写了BroadcastReceiver.I想从BroadcastReceiver获取数据到我的活动中,所以我怎么得到它。请帮助我,请。如何将数据从BroadcastReciever恢复到Activity?

我的广播Reciever代码如下:

public class SmsReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     //---get the SMS message passed in--- 
     Bundle bundle = intent.getExtras();   
     SmsMessage[] msgs = null; 
     String str = "";    
     if (bundle != null) 
     { 
      //---retrieve the SMS message received--- 
      Object[] pdus = (Object[]) bundle.get("pdus"); 
      msgs = new SmsMessage[pdus.length];    
      for (int i=0; i<msgs.length; i++){ 
       msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
       str += msgs[i].getOriginatingAddress();      

      } 

      //---display the new SMS message--- 
      Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 
     }  
    } 
} 

我想回去 “STR” 值到另一个活动。

回答

1

在广播:

Intent intent = new Intent(context, MyActivity.class); 
intent.putExtra("sms-text", str); 
context.startActivity(intent); 

您的活动:

Intent intent = getIntent(); 
String sms = intent.getExtras().getString("sms-text"); 
+0

是否即使MyActivity运行这项工作?它会导致创建重新运行或类似的东西? – Phil 2011-06-03 21:45:53