2010-10-18 4 views
2

Я пытаюсь вызвать invalidate() из asyntask thread. Я получаю эту ошибку:проблема с вызовом invalidate в цепочке задач async в Android!

10-18 15: 14: 30.469: ERROR/AndroidRuntime (889): причиненный: android.view.ViewRoot $ CalledFromWrongThreadException: Только оригинальный поток, который создал иерархию вида можно потрогать его взглядов.

Линия Я использовал это:

mainClass.myMapView.invalidate(); // где MainClass = главный интерфейс класса

Может кто любезно предложить, где моя вина есть?

Спасибо.

- Ahsan

ответ

2

Вы не можете сделать что-нибудь UI, связанные с другой нитью, чем в потоке пользовательского интерфейса (таким образом, его имя). Вы должны позвонить по телефону invalidate() либо в onPostExecute(), либо в onProgress(). Или, используйте runOnUiThread() (что в основном то, что publishProgress()/onProgress() делает).