5

フラグを使用FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOPて、以前の「標準」アクティビティに戻ります。FLAG_ACTIVITY_SINGLE_TOP新しいインスタンスの再作成を防ぐために使用します。しかし、私が見つけたのは、フラグFLAG_ACTIVITY_SINGLE_TOPが無視され、アクティビティが終了して再作成されたということです.

  • ここに私がドキュメントで見つけたものがあります。FLAG_ACTIVITY_CLEAR_TOP : 「終了 - 再作成」を防止するためFLAG_ACTIVITY_SINGLE_TOPに使用する場合に追加できると書かれています。FLAG_ACTIVITY_CLEAR_TOP

  • ここに別のドキュメントがあります。FLAG_ACTIVITY_CLEAR_TOP :

    注: 指定されたアクティビティの起動モードが「標準」の場合、それもスタックから削除され、代わりに新しいインスタンスが起動されて着信インテントが処理されます。これは、起動モードが「標準」の場合、新しいインテントに対して常に新しいインスタンスが作成されるためです。

最初のドキュメントを誤解しましたか?

4

3 に答える 3

5

ドキュメントでは、設定する必要があるのは FLAG_ACTIVITY_CLEAR_TOP だけであることが示唆されています。ただし、アクティビティが再度作成されないようにするには、実際には両方を設定する必要があります。

これは私の場合のトリックでした:(メインは私が戻りたいアクティビティです)

  Intent tabIntent = new Intent(this, Main.class);
  tabIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(tabIntent);
于 2011-08-14T19:56:07.137 に答える
2

これは役に立つかもしれません: Android Intent.FLAG_ACTIVITY_SINGLE_TOP AND Intent.FLAG_ACTIVITY_CLEAR_TOP

于 2011-04-11T13:59:58.877 に答える
0

これをチェックしてください。
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED|Intent.FLAG_ACTIVITY_SINGLE_TOP)

于 2014-01-06T11:15:02.113 に答える