Sono stato infastidito da questo per un po '. Come gestisco correttamente le modifiche all'orientamento dello schermo mentre ho un Thread
/AsyncTask
separato in esecuzione? Attualmente, hoGestisce l'orientamento dello schermo cambia quando ci sono AsyncTasks in esecuzione
android:configChanges="orientation|keyboard|keyboardHidden"
nel mio AndroidManifest.xml
, ma che è not really encouraged:
Nota: Utilizzando questo attributo deve essere evitato e utilizzato solo come ultima istanza. Leggere la sezione Gestione delle modifiche di runtime per ulteriori informazioni su come gestire correttamente un riavvio a causa di una modifica della configurazione.
Inoltre, nel 2.3 emulatore, funziona quando si passa a landscape
, ma tornando alla portrait
fallisce.
Ora, il motivo per cui utilizzo configChanges
è perché quando l'utente cambia orientamento, potrei avere un AsyncTask
in esecuzione, fare un po 'di traffico di rete e non voglio che si fermi.
C'è qualche altro modo per farlo, o c'è un modo per aggiustare 2.3 per tornare al ritratto?
che so di onRetainNonConfigurationInstance
, ma non sono sicuro che sarebbe una buona idea di "salvare" l'istanza AsyncTask
, soprattutto perché la classe che estende AsyncTask
non è statica (in modo che è legata al Activity
) - e deve essere, perché in onPostExecute()
chiama i metodi dall'istanza Activity
.
Molto bello, molto più semplice dell'implementazione di un 'Servizio'. Grazie. – Felix
@Flo so che è passato un po 'di tempo dal post ma sto cercando di fare lo stesso, ma non capisco cosa intendi con "Per ricevere una notifica quando l'attività è terminata, l'attività deve implementare un'interfaccia che utilizza per registrarsi alla classe Application. " Qualche possibilità di un esempio? (Sono nuovo a java e android1) – Bex
Spiacente, non ho un esempio di codice. Ma date un'occhiata a [il pattern degli osservatori] (http://stackoverflow.com/questions/2483644/rosetta-stone-observer-pattern) Spero che capirete cosa intendo con "register" (update()) e "notifica" (addObserver()). – Flo