Функция сна в программе Android

У некоторых проблем с запуском моей программы. Что я пытаюсь сделать, так это когда btnStart нажата, чтобы случайно установить изображения на 12 ImageButtons. Затем я хочу, чтобы он приостановился на 5 секунд, а затем изменил первый ImageButton на другое изображение

Мой код выглядит так, прямо сейчас он приостанавливается, когда кнопка нажата …

btnStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Collections.shuffle(pic); int time=1; press=true; pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.memgreen)); pic.get(1).setImageDrawable(getResources().getDrawable(R.drawable.memgreen)); pic.get(2).setImageDrawable(getResources().getDrawable(R.drawable.memred)); pic.get(3).setImageDrawable(getResources().getDrawable(R.drawable.memred)); pic.get(4).setImageDrawable(getResources().getDrawable(R.drawable.memblue)); pic.get(5).setImageDrawable(getResources().getDrawable(R.drawable.memblue)); pic.get(6).setImageDrawable(getResources().getDrawable(R.drawable.memwhite)); pic.get(7).setImageDrawable(getResources().getDrawable(R.drawable.memwhite)); pic.get(8).setImageDrawable(getResources().getDrawable(R.drawable.mempurple)); pic.get(9).setImageDrawable(getResources().getDrawable(R.drawable.mempurple)); pic.get(10).setImageDrawable(getResources().getDrawable(R.drawable.memyellow)); pic.get(11).setImageDrawable(getResources().getDrawable(R.drawable.memyellow)); try { Thread.sleep(5000); pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin)); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); 

Solutions Collecting From Web of "Функция сна в программе Android"

Ну, если вы хотите, чтобы пользовательский интерфейс оставался отзывчивым, вы не можете заблокировать поток пользовательского интерфейса с помощью Thread.sleep .

Создайте новый поток, а затем спать. После сна запустите метод изменения вида, который можно вырезать в потоке пользовательского интерфейса

 new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin)); } }); } }).start();