2011-11-02 26 views

答えて

3

お探しのメソッドは、あなたのマザークラスで実装できるonResumeメソッドです。 onResumeは、アクティビティを最初に起動したときにも呼び出されることを理解する必要があります。アクティビティのライフサイクルを見てください:http://developer.android.com/images/activity_lifecycle.png

よろしく、

+1

したがって、onResumeに関数更新があるとどうなりますか?アクティビティの最初の起動/設定の変更時に、意図しない場合でも更新が呼び出されます。 –

+1

この回答はどのように役立ちますか? 'onResume()'は、マザーアクティビティが最初に起動したときと、子アクティビティから戻るボタンを押してそこに戻るときの両方で呼び出されます。違いを検出する方法は? – LarsH

12

一つの可能​​性はstartActivityForResult()であなたの子供の活動を開始し、あなたが子供の活動から戻ったときに呼び出されますonActivityResult()を実装することであろう。

4

JSの答えは正しいですが、ここではいくつかのデバッグコードです。

は、あなたの活動の先頭に定数として要求コードを宣言します。

public static final int OPEN_NEW_ACTIVITY = 123456; 

あなたは新しい活動を開始する場所にこれを入れて:アクティビティが終了したときに

Intent intent = new Intent(this, NewActivity.class); 
startActivityForResult(intent, OPEN_NEW_ACTIVITY); 

は何かをします。ドキュメントにはresultCodeを使用することが示唆されていますが、状況によっては、ボタンを押したときの結果はRESULT_OKまたはRESULT_CANCELEDのいずれかになります。だから私はそれを残すだろう。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == OPEN_NEW_ACTIVITY) { 
     // Execute your code on back here 
     // .... 
    } 
} 

何らかの理由で、これをフラグメントに入れるときに問題がありました。だからあなたはアクティビティにそれを入れなければなりません。

0

また、onBackPressed()メソッドとonOptionsItemSelected()メソッドの両方をオーバーライドして、そこにロジックを配置することもできます。たとえば、これを私のBaseActivityに入れて、他のすべてのアクティビティが以下から展開されます:

@Override 
public void onBackPressed() { 
    // your logic 
    super.onBackPressed(); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     // your logic 
    } 
    return super.onOptionsItemSelected(item); 
} 
関連する問題