每次用户按下按钮时,都会执行以下代码。
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。
如果图像B稍后完成,我怎么能避免它取代图像B?
我的意思是,如果在第一个完成之前另一个(图像B)开始,我有什么方法可以取消一个线程(图像A)?
这也有助于不排队大量点击并无用地完成整个过程。我的意思是,如果用户在图像A完成之前按下按钮,则完成处理图像A是没有意义的。如果用户在图像A完成之前按下按钮5次,则下载图像A,B,C和D.它应该只下载E(第五次点击)。