2012-10-22 100 views
0

可能重複:
How do I pass data from a BroadcastReceiver through to an Activity being started?如何將數據從BroadcastReceiver傳輸到主要活動?

在我的Android應用程序,我有一個主要活動稱爲App和廣播接收器叫做SmsReceiver。在SmsReceiveronReceive()方法中,我想捕獲一條短信並將其內容發送回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); 
} 
+0

感謝彼得,這可能是有用的。我會嘗試該帖子的解決方案。 – Neko

回答

2

如果你只想要趕上活動時,你的活動不被破壞,比在活動內部的廣播接收機就足夠了。

如果你想捕捉所有的廣播,即使你的活動沒有開始,看看Android Services

關於你的具體錯誤,怎麼樣粘貼在這裏?也可能是你的代碼?

+0

我編輯了我的帖子。 – Neko

+0

放入崩潰報告 - Logcat調試 – Radu

相關問題