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