1

スタックに次のアクティビティがあります。

A , B , C, D 

このスタックを取得するために B を再起動します。

A , B'

B' は新しい B インスタンスです (onNewIntent コールバックを受け取る古いインスタンスではありません。どうすればよいですか?

ちなみに私が使っているのは

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Bアクティビティを起動するときですが、この方法では、新しいインスタンスを開始する代わりにonNewIntentが呼び出されます

4

2 に答える 2

5

特定のアクティビティをクリアするには、マニフェスト ファイルで android:noHistory=true を使用します。これで問題が解決することを願っています。

于 2013-04-25T10:01:58.330 に答える
2

ここで、このコードを使用すると、アクティビティ B に進みます。B では、戻るボタンを押して A に進みます。

Intent fromDtoB = new Intent(this,B.class);
fromDtoB.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(fromDtoB);

FLAG_ACTIVITY_CLEAR_TASK: Context.startActivity() に渡される Intent に設定されている場合、このフラグにより​​、アクティビティが開始される前に、アクティビティに関連付けられている既存のタスクがすべてクリアされます。

FLAG_ACTIVITY_CLEAR_TOP: 設定されていて、起動されているアクティビティが現在のタスクで既に実行されている場合、そのアクティビティの新しいインスタンスを起動する代わりに、その上にある他のすべてのアクティビティが閉じられ、このインテントが (今一番上)新しいインテントとしての古いアクティビティ。

于 2013-04-25T10:05:19.823 に答える