Question

Je suis en train d'écrire une activité, qui charge des données à partir d'un serveur et l'affiche comme une liste à l'aide ArrayAdapter. Pour que je montre un dialogue de progression i.e. chargement, pendant qu'il charge toutes les données du serveur. Ensuite, je rejette la boîte de dialogue dans un gestionnaire. Mon problème est que chaque fois que je change l'orientation, la boîte de dialogue de progression est à nouveau montré, qui n'est pas nécessaire, parce que toutes les données sont affichées déjà?

Était-ce utile?

La solution

Je dirais que vous avez deux options:
Soit vous forcer votre activité à ne pas être en mesure d'orientation du changement:

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

dans votre manifeste ( documentation ), qui racontera le système que vous voulez à l'orientation de la poignée change par vous-même, et dans ce cas, vous ne fera rien. Mais, vous préférez ajouter du code dans onPause() et onSaveInstanceState() parce que cette activité peut être interrompue par Android lorsque vous recevez un appel, par exemple, de téléphone. Donc, vous devez gérer une économie.

Ou, vous choisissez d'empêcher l'affichage de la boîte de dialogue lorsque cela a déjà été affiché, ou lorsque est en cours d'exécution de votre fil d'arrière-plan. C'est facile est utilisez-vous un AsyncTask pour votre part de téléchargement, parce que vous pouvez utiliser AsyncTask.getStatus qui vous ramènera le statut de la tâche . Si elle est déjà dans l'état fini, vous devez annuler la boîte de dialogue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top