2017-08-14 13 views
1

次のシナリオがあり、フラグメントを使用しないようにしたいと考えています。フラグメントのようなアクティビティバックスタックの振る舞い

Act X <-> (Act A <-> Act B <-> Act C) --> Act X.

可能バック・ナビゲーションがなければなりません。プロセス(A-B-C)を終了した後、私はエントリーポイント(バックスティック、例えばアクトX)に戻りたいと思う。また、私はいつでもプロセスを閉じることができるようにしたい。例:ユーザーが行為Bにあり、Cancel -Button - >エントリポイント(Act X)に戻ります。

私は、任意のポイント(A、BまたはC)で特定のプロセスを取り消し、エントリポイント(X、...)に戻ることができる別の "バックアクティビティ"を持っていたいと思います。これはアクティビティのみを使用して可能ですか?私は別のtaskAffinity(マニフェスト内)をIntent.FLAG_ACTIVITY_NEW_TASKと使ってみましたが、私は "別のアプリケーション"を起動しないようにしたいと思っています。

+0

'FLAG_ACTIVITY_REORDER_TO_FRONT'、またはおそらく' FLAG_ACTIVITY_CLEAR_TOP'と 'FLAG_ACTIVITY_SINGLE_TOP'の組み合わせに戻ります。あなたの描写から、あなたが描いた活動の連鎖を通してユーザーが進んだ後に、バックスタックの状態がどのようになるかは、非常に不明です。 – CommonsWare

+0

「通常の」バックプレスの動作をしたい。 A-B-Cアクティビティは、アプリ内の設定用です。私がプロセスを終えると、私はエントリーポイントに戻りたいと思う。また、私は標準のバックナビゲーション**を提供したいと思っています**任意の時間/アクティビティで "config"プロセス全体をキャンセルするチャンスを与えます。 A-B-Cは一種のグループのように振る舞う。 – Maxi

+0

「私は「通常の」バックプレスの振る舞いをしたい。ユーザーが右側の「Act Home」に移動して、「戻る」を押すと、何が表示されますか?法C? Act Homeの別のインスタンス?一番右のAct Homeがバックスタックの唯一のものなので、ユーザーのホーム画面?他に何か? – CommonsWare

答えて

0

実際には、「popBackstack」のようなものはアクティビティのあるポイントまで存在しません。私はあなたができると思う:ユーザープレスを行うために法A、B、Cに

  • オーバーライドonBackPressedをキャンセルするとき

      が、存在する場合は、フロントに法Xを持参するように作用するXと FLAG_ACTIVITY_CLEAR_TOPフラグを使用して新しいインテントを開始
    • ユーザーがbackを押したときの上記のオプションと同じです。しかしその場合は、backのエフェクトをシミュレートするためにアニメーションを指定する必要があります。

    なぜアクティビティだけを使う必要があるのか​​分かりませんが、2つのアクティビティ(XとY)があれば簡単です。そして、YにはフラグメントA、B、Cが含まれています。そのように、Act YのonBackPressedを無効にして、ユーザーがいずれかのフラグメントでbackを押すとアクティビティを終了できます。 Act X.

  • 関連する問題