Проблема с вызовом инвалида в потоке асинхронных задач в 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()
делает).