Я знаю, как пользователю обработчик или таймер/нить/т. Д. Вы вызываете обработчик и начинаете/останавливаете его там, где это необходимо в коде. Как правило, обработчик будет запускать определенный код снова и снова, пока он не будет остановлен. Мне интересно, есть ли способ запустить другой код для каждого исполнения. Один из способов, о котором я думал, - это сделать следующее.Выполнение другого кода для каждого обработчика/выполнения таймера/потока
Handler h = new Handler();
int delay = 1000; //milliseconds
int handlerCount = 0;
h.postDelayed(new Runnable(){
public void run(){
//update handler count
handlerCount = handlerCount + 1;
if (handlerCount ==1) {
//run code 1
}
if (handlerCount ==2) {
//run code 2
} // etc.
h.postDelayed(this, delay);
}
}, delay);
Или, если вам нужно сделать другой код каждый другой раз, вы могли бы сделать
if (handlerCount%2 == 0) {
//Do first function
} else {// do second function}
Это лучший способ сделать это? Это не кажется очень чистым, но он отлично работает, поэтому мне интересно, есть ли лучшие способы сделать это.
Это только для сообщений? Или вы можете поставить общий код, например textView.setText («текст») ;? –
да, вы можете добавить и общий код. потому что это обработчик для основной нити – arjun
Я сделал спасибо !!! –