私はプログラミングに不慣れで、これに何日も苦労していて、それを機能させることができません。
いくつかのタスクを実行するためのループがあります。ImageView
その特定のタスクの画像が表示されます。したがって、次のようになります。
- setImageResource
- いくつかのタスクを実行します
- 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;
}
}
変数「sleeping」を使用して、メインスレッドに遅延を待機させています。