Domanda

vi scrivo un'attività, che carica i dati da un server e lo visualizza come un elenco utilizzando ArrayAdapter. Per questo sto mostrando un progresso finestra cioè di carico, mentre carica tutti i dati dal server. Poi ho chiudere la finestra in un gestore. Il mio problema è che quando mai a cambiare l'orientamento, la finestra di avanzamento è di nuovo dimostrato, che non è necessario, perché tutti i dati vengono visualizzati già?

È stato utile?

Soluzione

Direi che si hanno due opzioni:
O si forza la vostra attività di non essere in grado di orientamento cambiamento:

<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation"> 

nel manifesto ( documentazione ), che dirà il sistema che si desidera orientamento gestire le modifiche da soli, e in questo caso, non si farà nulla. Ma, si preferisce aggiungere un po 'di codice in onPause() e onSaveInstanceState() perché questa attività potrebbe essere interrotta da Android quando si riceve una telefonata, per esempio. Quindi è necessario per gestire qualche risparmio.

In alternativa, si sceglie di impedire la visualizzazione della finestra di dialogo in cui è già stato visualizzato, o quando il thread in background è in esecuzione. Questo è facile è che si utilizza un AsyncTask per la parte download, perché è possibile utilizzare AsyncTask.getStatus che restituirà si lo stato del compito . Se è già in stato di finito, si deve annullare la finestra di dialogo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top