2011-12-07 14 views
6

外部アクティビティのコンテキストを使用して、あるアクティビティから別のアクティビティへデータを渡すには、startActivityを呼び出します。startActivity毎回アクティビティの新しいインスタンスを作成する

これは私が送信する意図を作成する方法の一例です:

public static Intent createSearchIntent(Context context, Class<?> cls) { 
    Intent i = new Intent(ACTION_SEARCH, null, context, cls); 
    return i; 
} 

は、これは私が活動を開始する方法を示します。

mContext.startActivity(mIntent); 

EDIT: 申し訳ありませんが、私が間違っていました何が起こるのですか。私はstartActivityを呼び出すとアクティビティは破棄されませんが、常に目的を送信しているアクティビティにはonCreateメソッドが呼び出されていますので、一時停止/停止されたインスタンスに戻る代わりにアクティビティの新しいインスタンスが作成されていると推測しています。

一時停止/停止したアクティビティに戻ることができるように、どうすれば変更できますか?

+1

システムのリソースが少ない場合を除き、アクティビティを終了してはなりません。あなたのコードを含むように質問を編集してください。 –

+0

あなたの活動はどのように破壊されたと言えますか?あなたはその活動のためにlogcatのstacktraceを見ましたか? – user370305

答えて

8

これは、次のとおりです。

それは活動のライフサイクルです。以前に開始したアクティビティをスタックの先頭に戻すには、フラグをインテントに追加してから、そのアクティビティを開始する必要があります。startActivity(i) 'i'をインテント名にしてください。
他のフラグの一覧については、hereをご覧ください。

+0

これは私が必要としていたものです。ありがとう! – ayelder

+0

ありがとうございます。それは私のために働いた。 –

4

アクティビティAからアクティビティBを呼び出すと、デフォルトではアクティビティA自体が破棄されません。アクティビティAの上に表示されるアクティビティBは画面オーバーラップして表示されます。 Backボタンを押すと確認できます。あなたはフラグを使用する必要がある場合http://developer.android.com/reference/android/app/Activity.html

+0

申し訳ありませんが、あなたは正しいです。私はこれを反映するために私の質問を変更しました。 – ayelder

関連する問題