Una buona ragione per inserire le cose nel costruttore, come aveva affermato il commento di Gili, è l'uso dei campi finali.
Tuttavia, se si inizializzano le cose nel costruttore, quindi la durata dell'oggetto sarà un po 'più lunga, anche se non penso molto perché lo onCreate
verrà chiamato poco dopo.
Anche se è contro il mio ideale, io evito il costruttore per l'inizializzazione dei membri dell'attività e contare su di onResume()
e onPause()
per le risorse che la mia app che fare.
Per onCreate()
Di solito lo uso per eseguire il mapping delle viste alle variabili locali. Anche se le annotazioni per android lo fanno già per me, raramente ho un metodo onCreate()
per la mia attività. Lo uso ancora in servizio però.
Tuttavia, se si guardano i membri che si può essere l'inizializzazione
avrebbero un metodo di "stretta" che si deve richiamare al momento giusto (onResume o onPause)
sarebbero parte della vista che significa che deve essere inizializzato quindi onCreate deve essere chiamato
sono costanti che non devono essere necessariamente inserite nel costruttore, ma solo una finale statica. Ciò include le costanti Paint e Path che possono essere inizializzate da un blocco statico
fonte
2013-07-19 21:46:55
Che dire del fatto che Android può distruggere/ricreare la tua attività in qualsiasi momento? Non sai se il costruttore verrà chiamato allora e anche se - quale costruttore sarà chiamato ... (lo stesso vale per Frammenti e questo è il motivo per cui ogni Frammento deve implementare un costruttore predefinito vuoto). –