2010-12-01 47 views
1

J'ai 2 activités:Démarrage d'une activité et de retarder la transition

    - activité A est la collecte de données à partir d'Internet (il prend un certain temps)
    - l'activité B est la construction d'éléments d'interface utilisateur sur la base des données précédemment reçues (il faut aussi du temps)

Lorsque l'activité A commence le téléchargement, l'application entre dans une phase de chargement. Quand c'est fini, l'activité B démarre, donc j'ai une transition entre les vues de A & B. Alors B nécessite aussi une phase de chargement.

J'ai chargement - transition - chargement - résultat qui ne semble pas du tout agréable.

Je voudrais avoir un chargement - transition - résultat où les chargements des deux activités sont groupés. Donc, ma question est la suivante: existe-t-il un moyen de démarrer l'activité, mais de retarder la transition?

+0

« Alors B nécessite également une phase de chargement »: avec la phase de chargement , vous voulez dire "phase de dessin" que le système prend pour dessiner l'interface utilisateur, à droite. –

Répondre

5

Je ne pense pas que vous allez dans le bon sens à ce sujet. Je suggère juste d'avoir une activité avec un chargeur. Ensuite, utilisez quelque chose comme AsyncTask pour charger les données dans un fil différent. Mettez à jour l'interface utilisateur lorsque les données sont chargées, puis, lorsque tout est terminé, supprimez le chargeur. Vous devez utiliser plusieurs threads pour effectuer un travail qui prend du temps, sinon votre interface utilisateur se bloquera. En regardant ce que vous avez dit plus haut, je ne vois pas pourquoi vous auriez besoin de deux activités.

0

Vous pouvez utiliser un ActivityGroup: http://developer.android.com/reference/android/app/ActivityGroup.html

Cela vous permettra de réaliser ce que vous voulez. Je ne pense pas que ce soit possible sans cela - (si vous avez vraiment besoin d'attendre que tous les éléments de l'interface utilisateur représentant les données soient dessinés, sinon, je suggère de suivre les conseils d'Amir ci-dessous).

Vous mettez les deux activités dans le groupe d'activités, mais cachez B au début (visibilité = disparu). Ensuite, vous pouvez échanger la visibilité/faire la transition une fois que les données sont chargées et que l'interface utilisateur pour B est construite.

Je suis curieux de savoir si ce genre de mise en page/interface utilisateur que vous avez qui prend tant de temps pour construire, si les données ont déjà été pré-chargé dans A.

+0

ActivityGroup est obsolète –