2016-08-23 8 views
4

アクティビティインスタンスA1、B1、A2、B2、アクティビティA、B、CのC1がスタック内にあるとします。アクティビティインスタンスB1をC1からどのようにトラバースできますか?スタック内のアクティビティ間の移動

一般的に、B1とC1との間には「n」個のアクティビティが存在します。

私はC1からBの新しいインスタンスを作成したくありません。

+0

説明できますか? – Krish

+0

'ViewPager'を使用https://developer.android.com/reference/android/support/v4/view/ViewPager.html –

+0

@WaqasRajaアクティビティ間をどのようにトラバースするか尋ねました。タブを使用してアクティビティをトラバースしません。したがって、答えはViewPagerではありません – tpk

答えて

3

これは実際Android用の非常に悪いアーキテクチャです。 Activityに複数のインスタンスを作成する場合は、具体的に対処する方法はありません。たとえば、「ActivityBの最初のインスタンスに戻る」などです。 Androidはこのように設計されていません。

Activityの複数のインスタンスを作成しないでください。同じインスタンスを使用し、複数のインスタンスの「錯覚」を作成するのは、基になるデータを交換して、ディスプレイに状態遷移を追加して、別のActivityを開始するように見えるようにすることです。

もう1つの解決策は、多くのstartActivityForResult()を使用して、次に何をするかについての情報をAxctivityに返すことです。詳細については

は、(これらの質問は、具体的FLAG_ACTIVITY_REORDER_TO_FRONTの使用についてであっても、問題は基本的には同じです)を参照してください。

+0

'同じインスタンスを使用し、基になるデータを交換することによって複数のインスタンスの「錯覚」を作成する方が良いです - どのように同じアクティビティを使用できますか?説明できますか?ありがとう。 – tpk

+0

私があなたを助けるためには、同じ「アクティビティ」の複数のインスタンスを作成する理由を説明する必要があります。アプリ内でのナビゲーションの例を挙げてください。コメントでこれをしないでください。元の投稿を編集し、最後に詳細を追加するだけです。 –

+0

私はちょうど積み重ねられたトラバースについて興味がありました。だから私はアプリでナビゲーションの詳細を提供することはできません。シナリオを考えてみましょう。 – tpk

1

Flags with Intentを使用します。

公式ドキュメント:https://developer.android.com/guide/components/tasks-and-back-stack.html

はテント

FLAG_ACTIVITY_CLEAR_TOP

と一緒にフラグを渡しまた、あなたがあなたの必要性に応じて、単一の意向に複数のフラグをPaaSをすることができます。

これが役に立ちます。

+0

これは実際には動作しません。タスクはB1にではなくB2にクリアされます。 OPは、スタック内の各アクティビティの複数のインスタンスを持ち、特定のアクティビティに戻ることができるようにしたいと考えています。 –

関連する問題