我是编程新手,我已经为此苦苦挣扎了好几天,无法让它发挥作用。
我有一个循环来执行一些任务。它将ImageView
为该特定任务显示一张图片。所以它是这样的:
- 设置图像资源
- 做一些任务
- 等待 1 秒
- 然后重新开始一切,直到命令结束
- 当所有命令结束时,通过调用 finish() 关闭该活动
我尝试使用带有 runnable 和 asynctask 的处理程序,但我无法让它工作。UI 总是在 1 秒延迟之后更新。当我在命令结束后调用 finish() 时,照片似乎根本没有出现。
for(int i=0; i<actions.size(); i++) {
switch((int)actions.get(i)[0]) {
case 0:
ivActionIcon.setImageResource(R.drawable.image);
sleeping=true;
DelayAsyncTask delay=new DelayAsyncTask();
delay.execute();
while(sleeping){};
break;
}
}
finish();
class DelayAsyncTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... params) {
try {
Thread.sleep(5000);
} catch(Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
sleeping=false;
}
}
我正在使用一个变量“睡眠”来让主线程等待延迟。