6

如果我從活動啓動DialogFragment,當關閉DialogFragment時會發生什麼?活動是否通過onResume狀態?還是像任何普通的java調用一樣調用,以便在關閉DialogFragment之前不會執行下一行?DialogFragment如何影響調用活動的生命週期

假設用於啓動我的片段的方法是

private void launchFragment(){ 
    ConfirmationDialog confirm = new ConfirmationDialog(); 
    confirm.show(getSupportFragmentManager(), "confirm"); 
    doMoreStuff(); 
} 

所以我的問題是雙重的:

  1. doMoreStuff()叫什麼名字?在關閉片段以返回父活動之前或之後?
  2. 當我關閉片段以返回父活動後,父活動是否通過onResume:這樣如果我檢查了由片段更改的某個字段,我可以在onResume中根據狀態字段:

如在下面的例子:

@Override 
public void onResume() { 
    super.onResume(); 
    if(dialogFragmentChangedThis){ 
     workSomeMore(); 
    } 
} 

該片段與

setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 

,以便它是在發動全屏模式。

回答

5

何時調用doMoreStuff()?在關閉片段以返回父活動之前或之後?

DialogFragmentshow()方法只是犯了FragmentTransaction,這將被異步執行,因此它後面的任何方法將被立即執行。

後,我關閉片段返回父活動,確實父活動經歷的onResume

不,沒有,因爲你的Activity是在前臺的時候,因爲有沒有其他Activities參與。

通常你會爲你簡單Fragment就做,在你的Activity執行回調並通過該接口調用你Activity的方法時,你想傳遞的一個結果,使用回調聽衆DialogFragment小號行動發生在DialogFragment

+0

我想過實現一個自定義的回調接口,但我希望有一個更簡單的方法,然後,生命週期中的這種小豬支持。 –