それは活動が次のコードで書かれたメニューから起動した場合、この問題が唯一の登場が判明:
private static final int MENU_ITEM_A = 0;
private static final int MENU_ITEM_B = 1;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_ITEM_A, 0, R.string.menu_item_a);
menu.add(0, MENU_ITEM_B, 0, R.string.menu_item_b);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
intent = null;
switch (item.getItemId()) {
case MENU_ITEM_A:
intent = new Intent(this, ActivityA.class);
break;
case MENU_ITEM_B:
intent = new Intent(this, ActivityB.class);
break;
default:
intent = null;
Log.e(TAG, "Unkown menu item.");
}
if (intent != null) {
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityForResult(intent,
ActivityHelper.AUTO_CLOSE_REQUEST_CODE);
}
return super.onOptionsItemSelected(item);
}
ここで文字列リソース
<string name="menu_item_a">Start Activity A</string>
<string name="menu_item_b">Start Activity B</string>
は単純にこのコードを追加していますbase inazarukのコードサンプルのアクティビティを自分で確認します。メニューからアクティビティAとアクティビティBを数回切り替えてから、スタック内のすべてのアクティビティを閉じるようにしてください。うまくいかないだろう。
今、一つは原因が意図フラグだったと思うだろう:
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
しかし除外このinazarukからコード内のすべての意図にこのフラグを追加します。
誰かが何が起こったのかを正確に説明できれば、聞くのはすばらしいことです。
'AndroidManifest.xml'のAやBアクティビティのために' android:launchMode'に何か設定されていますか? – inazaruk
いいえ、私はsingleTopを一回使ってみましたが、自然には役に立ちませんでした。 – Vanja
私のローカルの例ではすべて正常に動作します。おそらくあなたが紛失しているものがあります。ここでコード例をアップロードしました:https://github.com/inazaruk/examples/tree/master/ActivityResultこれがあなたに役立つかどうかを見てください。 – inazaruk