私は、動作しているかどうかに関わらず、別のアクティビティにデータを送信するために使用しているBroadcastReceiverを持っています。私は私のonReceive()メソッドでインテントを使い、putExtra()でデータを入れています。データはアクティビティに送信されますが、アクティビティがすでに実行されていてもフォアグラウンドであっても、アクティビティのonCreate()メソッドが呼び出されるため、新しいインスタンスが作成されているようです。私はonResume()を呼び出すだけです、あるいは存在しない場合はインテントを作成/開始できる他の方法があります。もしそうであれば、それを '再開'してください。今、活動は再現されており、私はこれを望んでいません。 開始可能な別のアクティビティへのデータの送信
public void onReceive(Context context, Intent intent) {
intent.setClass(context, MyActivity.class);
intent.putExtra("message", "the data here");
//intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Log.d("sending msg", "msg");
context.startActivity(intent);
}
私はFLAG_ACTIVITY_NEW_TASKを使用しない場合
、RuntimeExceptionは、特に私が活動ではない何かから活動を開始したい場合は、私はFLAG_ACTIVITY_NEW_TASK
を使用しなければならないことを私に言って、スローです。
この解決策は回避策です。それはあなたにとっては良いかもしれませんが、それは正解とマークすべきではありません。この質問に対する回答を探している他の人もここに来るでしょう。 – selalerer
@selalerer、私はこれが回避策ではないと感じて、他の人のために働くでしょう。それは言われている、私はよりよい解決に開いています。より良い解決策があれば、ここに含めてください。 –