2011-06-24 15 views
0

私は2つのアクティビティA1とA2を持っています。私はA1からA2を(インテントを通して)呼び出しています。 今A2の中で私はいくつかのイベントを発射しており、それに基づいて再びA1を呼び出して、意図を通ってデータを渡しています)。再度呼び出すとアクティビティの状態が維持されます

問題は、A1がデータからA2から呼び出されると、A1アクティビティ自体が新しい状態でロードされますが、A1が最初にロードされたときの古い状態を維持したいと考えています。間接的に私はonCreateを呼びたくありません。

これまでのところ、私はonOptionsItemSelectedから次のようにA1を呼び出し、selectedMenuInde​​xに

A1.show(this,selectedMenuIndex);  
を渡していA2から負荷自体

public static void show(Context context , int index)  
    { 
      final Intent intent = new Intent(); 
      intent.setAction(MC_MY_ACTION); 
      intent.putExtra("routeIndex", index); 
      context.startActivity(intent); 

    } 

A1での静的メソッド、A1の活動に次のコードを試してみました

+0

明確にするために、A2がA1のインテントを起動するときに、あなたの総アクティビティスタックがこのように見えますか? 'Activity1(bottom)>> Activity2 >> Activity1(Top、visible)'または、Activity2を元のActivity1に戻したいですか?または、Activity2がスタックに埋め込まれましたが、古いActivity1に新しいデータが表示されるようにしましたか? – yep

+0

私はAcitvity2が元のAcivity 1(最初に初期化された古い状態)に戻るのを待っています – Hunt

+0

次にfinish()を呼び出します。アクティビティ2でAndroidが残ります – Eric

答えて

0

アクティビティがfinish()だった場合は、onCreate()をもう一度やり直すことはありませんが、心配する必要はありません。あなたのonCreate()がそのインテントエクストラの内容を調べ、もし存在しない場合はデフォルトの初期化に従いますが、エキストラがある場合は、前の状態に戻るために十分な状態データを持ちます。

関連する問題