проблема с вызовом инвалида в потоке асинхронных задач в Android! - PullRequest
2 голосов
/ 18 октября 2010

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

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

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

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

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

Спасибо.

- ахсан

1 Ответ

2 голосов
/ 18 октября 2010

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

...