2010-10-18 32 views
2

J'essaie d'appeler le invalidate() du thread asyntask. Je reçois cette erreur:problème avec l'appel invalider dans le fil de la tâche asynchrone dans Android!

10-18 15: 14: 30,469: ERREUR/AndroidRuntime (889): Causé par: android.view.ViewRoot $ CalledFromWrongThreadException: Seul le thread d'origine qui a créé une hiérarchie de vue peut toucher ses points de vue.

La ligne que je l'ai utilisé est:

mainClass.myMapView.invalidate(); // où MainClass = classe principale UI

Quelqu'un peut-il suggérer de bien vouloir où ma faute est?

Merci.

- Ahsan

Répondre

2

Vous d'un autre thread ne peut pas faire lié interface utilisateur de quoi que ce soit que le thread d'interface utilisateur (ainsi son nom). Vous devez appeler invalidate() dans onPostExecute() ou dans onProgress(). Ou, utilisez runOnUiThread() (qui est essentiellement ce que fait publishProgress()/onProgress()).