0

私は5つの異なる活動をしています。

最初のアクティビティは、アプリケーションの最初のページです。上部にナビゲーション バーがあり、5 つのアクティビティ間を移動できます。(ナビゲーション バーは、すべてのアクティビティの xml レイアウトに存在します)

私が直面している問題は、別のアクティビティ (アクティビティ 1 からアクティビティ 2 など) に移動してから戻る (アクティビティ 2 からアクティビティ 1 へ) ときはいつでも、アクティビティ 1 で MapView がレンダリングされないことです。アプリケーションがアクティビティを切り替えていない場合、MapView は正常に動作します。

現在、このコードを使用してアクティビティ間を移動しています:

アクティビティ 1 のコード

startActivity(new Intent(Activity1.this, Activity2.class));

アクティビティ 2 のコード

startActivity(new Intent(Activity2.this, Activity1.class));

現在、アクティビティ 1 に戻る唯一の方法は、電話の戻るボタンを押すことです。しかし、別の問題に直面することになります。

2 つ以上のアクティビティ (アクティビティ 1 からアクティビティ 2、アクティビティ 3 など) の間を移動する場合、[戻る] ボタンを押すと、アクティビティ 3 からアクティビティ 2、最後にアクティビティ 1 に移動します (スタックオーバーフローでいくつかの例を見つけました)。この問題を克服するために)

MapView が正しく構成されていないためにレンダリングされないという主な問題の原因は何ですか?

それとも、アクティビティを切り替える方法が原因ですか?

4

1 に答える 1

1

最初の問題については、メソッドとパラメーターを調査して、Intent.setFlags(Intent.FLAG_ACTIVITY_???)

たとえば、あなたの例では次のことができます:

アクティビティ 1 のコード

// No change here
startActivity(new Intent(Activity1.this, Activity2.class));

アクティビティ 2 のコード

Intent i = new Intent(Activity2.this, Activity1.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);

これにより、アクティビティのスタックが蓄積され、アプリを終了するために多くの [戻る] ボタンが必要になるのを防ぐことができます。5 つのアクティビティがある場合、メインの Activity1 はデフォルトを使用して Activity2、3、4、および 5 を起動し、他のすべてのアクティビティはそれらのFLAG_ACTIVITY_REORDER_TO_FRONT間を切り替えて Activity1 に戻るために使用する必要があります。

2 番目の問題については、さらに情報が必要です。実際にここから質問を削除し、関連するコードと LogCat 出力とともに別のクエリとして再投稿することをお勧めします。活動開始とは直接関係ない可能性が高いです。

于 2012-04-20T04:29:39.570 に答える