Вы не можете достичь этого, используя postDelayed (), как вы это сделали. Метод не будет приостанавливать ваш метод в цикле. Это может быть достигнуто с помощью Thread.sleep (). Однако выполнение этого в потоке пользовательского интерфейса в конечном итоге приведет к принудительному закрытию, поскольку вы будете блокировать поток пользовательского интерфейса слишком долго.
По сути, вам нужен какой-то фоновый поток, ожидающий вас, который затем публикует исполняемый файл в вашем потоке пользовательского интерфейса, показывая / скрывая представления.
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
for(int i=0; i < 5; i++)
{
final ImageView view = imViews[i];
mHandler.post(new Runnable() {
public void run() {
view.setVisibility(View.INVISIBLE);
}
});
try {
Thread.sleep(1000);
} catch (Exception e) {}
mHandler.post(new Runnable() {
public void run() {
view.setVisibility(View.VISIBLE);
}
});
try {
Thread.sleep(1000);
} catch (Exception e) {}
}
}};
}
И в методе onCreate () запустите его с:
new Thread(mUpdateTimeTask).start();
Возможно, вы также захотите проверить класс TimerTask , который может помочь вам с периодическим запуском. Есть несколько способов сделать это.