Проблема с вызовом инвалида в потоке асинхронных задач в Android!

Я пытаюсь вызвать invalidate() из потока asyntask. Я получаю эту ошибку:

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

Я использовал следующую строку:

mainClass.myMapView.invalidate(); // где mainClass= основной класс пользовательского интерфейса

Кто-нибудь может подсказать, где моя вина?

Благодарю.

- ахсан

1 ответ

Решение

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

Другие вопросы по тегам