0

J'ai une activité Android qui crée des vues personnalisées, et c'est un processus coûteux. J'ai essayé d'utiliser un gestionnaire, mais quand je le fais, la boîte de dialogue de progression qui s'affiche, tourne comme une fois toutes les 5 secondes. J'ai donc essayé d'utiliser un AsyncTask. Maintenant le progressDialog tourne, mais alors il plante, parce qu'il n'est pas autorisé à charger l'interface utilisateur? Comment puis-je faire cela sans avoir besoin d'ANR?Comment charger des vues complexes simultanément

08-10 19:28:21.313: ERROR/AndroidRuntime(1428): Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 

Répondre

1

J'ai une activité Android qui crée des vues personnalisées, et il est un processus coûteux.

Utilisez Traceview ou d'autres outils pour améliorer vos performances. Les vues personnalisées ne sont pas intrinsèquement chères à créer. J'ai donc essayé d'utiliser un AsyncTask. Maintenant le progressDialog tourne, mais alors il se bloque, parce qu'il n'est pas autorisé charger l'interface utilisateur?

Vous ne pouvez généralement pas effectuer de travail lié à l'interface utilisateur dans un thread d'arrière-plan. Avec un peu de soin, vous pouvez peut-être construire des widgets, mais vous ne pouvez définitivement pas les attacher à l'écran (c'est-à-dire qu'ils ne peuvent pas être référencés en tant qu'enfants de votre vue de contenu).

Comment puis-je faire cela sans ANR? Je voudrais mettre l'accent sur la résolution de votre problème de performance, en utilisant Traceview ou d'autres outils pour obtenir à la racine de l'heure où votre temps est dépensé.

+0

http://quickupload.net/tqfq8ir8nv6g/add_providers-quickupload.net.trace.html Je n'ai aucune idée de comment lire ceci! Pourquoi ne puis-je pas étendre verticalement la partie colorée? Aussi, je n'ai aucune idée de ce qui est important, de ce qu'il faut rechercher ou quoi faire quand je l'ai trouvé. –

Questions connexes