6

Se lancio un DialogFragment da un'attività, cosa succede quando chiudo DialogFragment? L'attività passa attraverso lo stato di rendimento? Oppure la chiamata è una normale chiamata java in modo che la riga successiva non venga mai eseguita fino a quando DialogFragment non viene chiuso?in che modo DialogFragment influisce sul ciclo di vita dell'attività di chiamata

Supponiamo che il metodo per lanciare la mia frammento è

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

Quindi la mia domanda è duplice:

  1. quando è doMoreStuff() chiama? Prima o dopo chiudo il frammento per tornare all'attività padre?
  2. Dopo aver chiuso il frammento per tornare all'attività padre, l'attività padre passa attraverso il risultato: in modo che se ho un controllo per qualche campo modificato dal frammento, posso lavorare in onResume in base allo stato di quello field:

Come nel seguente esempio:

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

il frammento viene lanciata con

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

modo che sia in modalità schermo intero.

risposta

5

Quando viene chiamato doMoreStuff()? Prima o dopo chiudo il frammento per tornare all'attività padre?

s' show() metodo DialogFragment commette solo un FragmentTransaction, che verrà eseguito in modo asincrono, in modo che qualsiasi metodo che segue verrà eseguita immediatamente.

Dopo chiudo il frammento di tornare all'attività genitore, fa l'attività genitore passare attraverso onResume

No, non lo fa, poiché la vostra Activity è in primo piano per tutto il tempo, in quanto non vi non sono coinvolti altri Activities.

Di solito userete i callback ascoltatori con DialogFragment s come si fa con semplici Fragment s, implementando i callback nel vostro Activity e chiamando il metodo d' tuoi Activity attraverso l'interfaccia quando si desidera passare a causa di un azione che è avvenuta nel DialogFragment.

+0

Ho pensato di implementare un'interfaccia di callback personalizzata, ma speravo che ci fosse un modo più semplice di quello; tale sostegno piggy sul ciclo di vita. –

Problemi correlati