每次用户按下按钮时,都会执行以下代码。
new Thread() {
@Override
public void run() {
aA = new albumArt(foo.getField("albumArt"),albumArt.GLOSSY_1, albumart,getBaseContext());
runOnUiThread(new Runnable() {
public void run() {
aA.placeAlbumArt();
}
});
}
}.start();
这里有一个问题:
例如: 用户按下按钮 => 图像 A 开始下载。 用户按下按钮(在图像 A 完成之前)=> 图像 B 开始下载。
图像 B 完成(在图像 A 之前)下载并显示(使用 aA.placeAlbumArt()
)。
图片 A 完成并替换图片 B。
如果图像 A 稍后完成,我如何避免图像 A 替换图像 B?
我的意思是,如果另一个线程(图 B)在第一个线程完成之前启动,我有什么办法可以取消线程(图 A)?
这也有助于避免大量点击排队和无用地执行整个过程。我的意思是,如果用户在图像 A 完成之前按下按钮,则完成图像 A 的处理没有意义。如果用户在图像 A 完成之前按下按钮 5 次,则下载图像 A、B、C 和D. 它应该只下载 E(第五次点击)。
最佳答案
关于android - 如果另一个相同的线程启动,如何停止一个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6397698/