Mam takiego handlera:
public void changeSpinnerWaitSelection2() {
Runnable runnable = new Runnable()
{
public void run()
{
if (count <= 3) spinnerWait.setSelection(count, true);
count++;
handler.postDelayed(this, 500);
}
};
runnable.run();
}
który przyspiesza z każdą iteracją. Zmienna count jest zerowana w innym miejscu. Co jest w związku z tym nie tak z tym handlerem?
Podczas gdy mam podobną metodę, która robi to samo i działa niemal idealnie:
public void changeSpinnerWaitSelection() {
TimerTask mTt1 = new TimerTask() {
public void run() {
mTimerHandler5.post(() -> {
if (count > 4) { mTimer2.cancel();}
if (count <= 3) spinnerWait.setSelection(count, true);
count++;
});
}
};
mTimer2 = new Timer();
mTimer2.scheduleAtFixedRate(mTt1, 0, 500);
}
Ale zdecydowanie będę preferował pierwszą wersję gdyż TimerTask wydaje się być szkodliwy dla jednego z moich sprzętów.