Запуск и остановка анимации Android Studio JUnit Tests - PullRequest
1 голос
/ 11 апреля 2020

У меня есть несколько тестов JUnit, которые нажимают кнопку, которая вызывает следующие функции:

public void startTimer() {
    startTime = SystemClock.uptimeMillis();
    handler.post(runTimer);
    blink();
}

Runnable runTimer = new Runnable() {
   @Override
   public void run () {

       millisecondTime = SystemClock.uptimeMillis() - startTime;
       updateTime = bufTime + millisecondTime;
       Seconds = (int) (updateTime / 1000);
       Minutes = (int) (updateTime / 60000);
       Hours = Minutes / 60;
       Minutes = Minutes % 60;
       Seconds = Seconds % 60;
       MilliSeconds = (int) (updateTime % 1000);
       timer.setText(String.format("%02d", Hours) + ":" + String.format("%02d", Minutes) + ":"
                        + String.format("%02d", Seconds));

       handler.postDelayed(this, 0);
}

public void blink() {
     Animation anim = new AlphaAnimation(0.0f, 1.0f);
     anim.setDuration(250); //You can manage the blinking time with this parameter
     anim.setStartOffset(0);
     anim.setRepeatMode(Animation.REVERSE);
     anim.setRepeatCount(Animation.INFINITE);    
     redCircle.startAnimation(anim);
}

Для контекста, следующий шаг в моем тесте JUnit нажимает кнопку, которая вызывает остановку анимации и handler.removeCallbacks (runTimer) ). Однако это даже не происходит, потому что это просто застряло!

Когда я закомментирую ОБА handler.post () и blink () в функции startTimer (), тесты JUnit снова начинают работать. Я не могу найти какие-либо решения для этого. Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 11 апреля 2020

Я исправил это!

Я сделал несколько изменений, я думаю, что это было основным:

handler.postDelayed(this, 0);

до

handler.postDelayed(this, 1000);

Также не уверен, помогло ли это но в случае, если я тоже сделал это:

handler.post(runTimer);

до

runOnUiThread(runTimer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...