只有创建视图层次结构的原始线程才能触及其视图

时间:2012-11-10 23:00:23

标签: android multithreading view

我有一个活动,其中我有一个由三个ImageView(左,中,右)组成的菜单。我有两个箭头(按钮),以便在菜单中移动。当我单击左箭头时,左侧ImageView中的图像将替换为中心ImageView中的图像;以类似的方式将中心ImageView中的图像替换为右侧ImageView中的图像,对于右侧ImageView,将显示新图像。  显示活动时,我没有所需的图像,ImageView显示默认图像,而正确的图像使用Thread下载。 下载三张图像后,我继续使用三张默认图像,只有在向左或向右移动后才能看到下载的图像。这是因为“只有创建视图层次结构的原始线程才能触及其视图”。所以用于下载的thred,当下载结束时可以触摸我的活动视图。 我该怎么做才能避免这个问题? 也许我必须使用处理程序。但是我无法做到这一点。

1 个答案:

答案 0 :(得分:2)

  

我可以做些什么来避免这个问题?

使用AsyncTask代替Thread,将更新 - ImageView逻辑放入onPostExecute()

或者,使用Handler

或者,在post()上使用ImageView

或者,在您的活动中使用runOnUiThread()