2013-02-10 12 views
11

Ho letto diverse risposte StackOverflow.com, ma ancora non vedo il vantaggio di utilizzare un DialogFragment su un semplice AlertDialog. Ho, a quanto pare, due strategie:Vantaggio di utilizzare un DialogFragment su AlertDialog semplice?

a) usare un AlertDialog.Builder configurare un AlertDialog, .create(), e poi .Show() nella mia attività (in qualche gestore di pulsante), o

b) sottoclasse DialogFragment, scrivere lo stesso codice AlertDialog-building in onCreateDialog() (tranne che ho appena ritorno il .create(), e poi, nella mia attività, un'istanza di un DialogFragment, e vederlo.

l'uscita sembra lo stesso

In entrambi i casi, io sono non utilizzando codice deprecato - Sto usando. show() con AlertDialog o DialogFragment. Il vantaggio è quando vado su un altro dispositivo? O che cosa è il punto ...

Grazie per eventuali approfondimenti,

Michael

risposta

23

DialogFragment gestisce una serie di casi di gestione del ciclo di vita per voi compresi i cambiamenti di configurazione (ad esempio, rotazione dello schermo) e il ripristino dello stato se il processo della tua app viene ucciso in background e l'utente ritorna in seguito. Se non stai usando DialogFragment dovrai gestire casi come questo in un altro modo.

+1

Grazie! Vorrei che Google avesse detto qualcosa di simile nella loro documentazione. –

+3

Che può essere organizzato. ;) – adamp

0

Oltre a ciò che @adamp ha detto, dal momento che DialogFragment riceve i propri callback del ciclo di vita, sarebbe responsabile del suo ciclo di vita, quindi la tua attività non sarà responsabile di dirgli cosa fare.

Ad esempio, quando l'attività sta terminando, la tua attività dovrebbe indicare le finestre di dialogo a dimiss(), altrimenti vedrai che ha errore leaked the window in logcat.

Problemi correlati