2012-04-11 8 views
3

私はAndroid SDKを使いこなしていましたが、SMSメッセージを受信する例の1つでは、onReceive Intent.getExtras()。私はその行の前後にログを追加して、getExtrasが実行された後はログを記録しませんでした。 Androidエミュレータのバージョンは4.0.3です。 誰も私が見ていないこのコードの欠陥を指摘することはできますか、この一見無作為で不満足な問題に対処するか解決策を提示できますか?Androidプログラミング:Intent.getExtras()は何らかの方法で実行フローを停止しているようです

public class SmsReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     Log.i("smsreceiver", "Intent: " + intent.getAction()); //Shows up in LogCat normally 
     Bundle bundle = intent.getExtras(); 
     Log.i("smsreceiver", "after"); //this is never reached, and nothing after this is executed 

     Object messages[] = (Object[]) bundle.get("pdus"); 
     SmsMessage smsMessage[] = new SmsMessage[messages.length]; 
     for (int n = 0; n < messages.length; n++) 
     { 
      smsMessage[n] = SmsMessage.createFromPdu((byte[])messages[n]); 

     } 
     Log.i("smsreceiver", "Message: " + smsMessage[0].getMessageBody()); 

    } 
} 
+0

バージョンでの作業は4.0.3です。のみまたはテスト? – NovusMobile

+0

私がテストしているバージョンは4.0.3です。私はまだ他のバージョンでそれを試していない。 – user1325633

+0

onReceive()は戻ってきますか? –

答えて

0

私は、デバッガの下でアプリケーションを実行し、あなたが言及したように、それが「ハング」するために取得した後、手動でアプリケーションに侵入、および実行がでている場所を確認します。これは、あなたが何が原因であるかもしれないかのヒントを与えるかもしれません。

ボーナスポイントについては、フレームワークのソースコードを解決し、実際に何が起こっていないかを把握するためにgetExtras()コールをデバッグできるようにIDEを設定することができます。

関連する問題