2011-06-19 27 views
1

私はonReceiveの機能を `BroadcastReceiver 'で起動しようとしていますが、クラッシュするようです。ここにコードはありません:Android - BroadcastReceiverのonReceiveがIntentからクラッシュする

public void onReceive(Context context, Intent intent) {  

    //... other stuff that's not relevant 

    Intent j = new Intent(context, myClass.class); 
    context.startActivity(j); 
    //If I comment the above two lines out and replace with a Toast, the toast shows up 
} 

思考?

編集 - もう少しテストを行いました。このアクティビティは、同じ種類のインテントを使用して他の場所から開始できます。私はちょうどBroadcastReceiverからそれをすることができません...

ありがとう。

答えて

2

はこれを試してみてください:

Intent j = new Intent(context, myClass.class); 
j.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(j); 
+0

素晴らしい人、ありがとう!好奇心の念から、一般的に私は自分の意図に適切なフラグを追加していることを見なければなりませんか? – JDS

+1

'BroadcastReceiver'の外では、あなたが特別な振る舞いを探している(そして、' BroadcastReceiver'でもこの1つの要件しか持っていません)。一般的に、あなたは本当にフラグを必要としません。特別な作業(インテントで実行中のアクティビティを再開したり、タスクスタックをクリアしたりするなど)を開始すると、その時点でフラグが有効になりますが、一般的にはhttp://developer.android.com/reference /android/content/Intent.htmlは、どのフラグが利用できるかを表示しますので、インテントがあなたのために実行していない状況に遭遇した場合は、そのことを見てみたいと思います。 – Femi

関連する問題