2011-11-02 63 views

回答

3

您正在尋找的方法可能是您可以在母類中實現的onResume方法;)。您必須知道,onResume也稱爲第一次啓動任何活動。看一個活動的生命週期:http://developer.android.com/images/activity_lifecycle.png

問候,

+1

那麼如果在onResume上有什麼功能更新?在Activity第一次啓動/配置更改時,即使它不是有意的,也會調用更新。 –

+1

此答案有幫助嗎?當母親活動第一次啓動時,以及當您通過按下子活動的後退按鈕返回時,都會調用onResume()。那麼你應該如何檢測差異? – LarsH

4

JS的答案是正確的,但這裏是一些調試代碼。

聲明請求代碼爲常數,在您的活動的頂部:

public static final int OPEN_NEW_ACTIVITY = 123456; 

將這個你開始新的活動:

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

做一些活動時結束。文檔建議您使用resultCode,但根據具體情況,按下按鈕時,結果可以是RESULT_OKRESULT_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); 
} 
相關問題