3

私には4つの活動があります:

Menu -> screen 1
Menu items -> screen 2
Detailed View -> screen 3
Ordered item -> screen 4

Menu アクティビティ (画面 1) には、MenuItems アクティビティ (リスト ビューである画面 2) に移動するボタン onclick があり、リスト ビュー内の任意の項目をクリックすると、このアクティビティの対応する項目の詳細ビューに移動します (画面 3)。私は注文されたビューと呼ばれるボタンを持っています、これのonlclickは注文されたアイテム(画面4)に行きます、この画面4には画面2に行くボタンがあります.

これが流れです

Screen 1 ->screen 2->screen 3->screen 4->screen 2

問題: 基本的なフローを実行した後、画面 2 に戻るをクリックすると画面 4 に移動し、再度クリックすると画面 3 に移動し、アクティビティが既に存在するため、ユーザーは n 回戻るボタンをクリックすることになります。スタック。

これを処理する方法は、戻るボタンのナビゲーションを意味します。

意図的にフラグを使用してみましたが、うまくいきません。

これも参考にしました

  1. Android: 戻るをクリックすると一連のアクティビティが削除される

  2. ログアウト時にアクティビティ履歴スタックをクリアし、「戻る」ボタンでログインのみのアクティビティが開かないようにします

編集 私は答えを得ました: 私の友人のほとんどがここで答えたので、私はこの Intent.FLAG_ACTIVITY_CLEAR_TOPを使用しました

そう

screen 1->screen 2->screen 3-> screen 4->screen 2

したがって、画面 4 では、このフラグを設定して、そのアクティビティの上のすべてのアクティビティをクリアする必要があります。

4

4 に答える 4

8
Intent intent= new Intent(this, screen 1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2012-11-15T07:14:39.457 に答える
1

このアクティビティが終了するように、すべてのインテントの後に finish() を使用する必要があります。

4 アクティビティから 2 アクティビティへのインテント機能。その後も仕上げを使用してください。

于 2012-11-15T07:11:18.717 に答える
1

あなたがしたいことは、マニフェストに launchMode singleTop を持つように画面 2 を設定することです。これにより、一度にスタック内にこれらのアクティビティが 1 つだけ存在することが保証されます。また、インテントでクリア トップ フラグを設定する必要があります。

Intent a = new Intent(this,A.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);
于 2012-11-15T07:13:55.800 に答える
0

このアクティビティが終了するように、すべてのインテントの後に finish() を使用する必要があります。

4 アクティビティから 2 アクティビティへのインテント機能。その後も仕上げを使用してください。

http://nanostuffs.com/Blog/?p=607

このリンクのリンクを確認する必要があります タブ のメインアクティビティに子アクティビティを使用しています。

于 2012-11-15T07:32:20.710 に答える