2016-07-13 4 views
0

私はすべてのページがWebPageActivity(webView)内にロードされるハイブリッドアプリケーションを持っています。私はすべての画面に対して新しいアクティビティを作成するのではなく、ハイブリッドhtmlページごとに同じアクティビティの複数のインスタンスを作成したいと考えています。バックスタックの特定のアクティビティをフォアグラウンドにしてトップをクリアする

次の要件である、

ナビゲーションスタック:

A - > B - > D - > E

ここでは、スタック内のすべての活動がタイプWebPageActivityのものであり、すべてのインスタンスが別のHTMLを描いています。ユーザーが「E」の活動にいくつかのボタンをクリックすると、それはスタックを、以下の結果として、前景色とクリアトップへ既存の「B」を持参してください

A-> B

概要:

スタック内のすべてのアクティビティは同じタイプですが、ビューが異なります。スタック内のいくつかのアクティビティには、クリアトップが必要です。

利用可能なデータ:

  1. すべての活動は、htmlファイルの名前を特定するプロパティを保持しています。
  2. スタック内のアクティビティに戻る場合はいつでも、そのアクティビティに存在するhtmlの名前を知っています。
+0

新しいインスタンスを開始せずにコンテンツを置き換えるだけで1つのリソースを使用できますか? – miva2

+0

私は1つのアクティビティしか使用していない場合は、履歴のカスタムバックスタックを維持する必要があります。 – JTeam

答えて

1

フラグメントを使用し、別のhtmlを表示するためだけに同じアクティビティの新しいインスタンスを作成しないでください。 Androidには、あなたと同じユースケースの断片があります。

また、複数のアクティビティインスタンスを作成すると、アプリのメモリ使用量が増えます。フラグメントを使用すると、独自のフラグメントタグ(アクティビティに追加中に指定する)を使用して、フラグメントをフラグメントのバックスタックから簡単に削除できます。

複数のアクティビティインスタンスを作成して達成するには、アクティビティインスタンス 'B'のインテントにフラグCLEAR_TOPを使用してください。これにより、Bの上にあるすべてのインスタンスがクリアされます。

+0

はい、断片は仕事をするべきですが、大きな変化を避けるために現在の状況では、私は活動でそれをやろうとしていましたが、それは活動でハッキーな仕事をしなくてもできないと思います。 CLEAT_TOPを使用することはできません。スタック内のアクティビティインスタンスに戻り、その上にあるすべてのアクティビティをクリアしたい、これらは異なるインスタンスですが、それらは同じタイプです。 – JTeam

関連する問題