在Android中的异步任务线程中调用invalidate的问题!

时间:2010-10-18 15:54:39

标签: android android-asynctask invalidation

我试图从asyntask线程调用invalidate()。我收到了这个错误:

  

10-18 15:14:30.469:ERROR / AndroidRuntime(889):引起:android.view.ViewRoot $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图。

我使用过的行是:

  

mainClass.myMapView.invalidate(); //其中mainClass =主UI类

有人可以建议我的错吗?

感谢。

- 阿赫桑

1 个答案:

答案 0 :(得分:2)

您不能从与UI线程不同的线程(因此其名称)执行与UI相关的任何操作。您应该在invalidate()onPostExecute()中致电onProgress()。或者,使用runOnUiThread()(基本上是publishProgress() / onProgress()所做的事情。)