Базовое приложение для обратного отсчета с текстовым изображением и кнопкой запуска/остановки. Если я закрою приложение во время работы countDownTimer, он продолжит работу до завершения. Проблема в том, что когда я снова открываю приложение, пока он подсчитывает метод onTick(), не обновляйте новый экземпляр TextView. Есть ли способ сделать эту работу?Android CountDownTimer - onTick() не обновляет пользовательский интерфейс после повторного открытия приложения
Если я правильно понимаю, CountDownTimer работает в своем собственном сервисе. Мой код:
public class MainActivity extends AppCompatActivity {
TextView display;
Button button;
MyCountdownTimer myTimer;
long starTime = 15 * 1000;
long interval = 1000;
boolean timerIsStarted = false;
private static final String TAG = "LogMainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTimer = new MyCountdownTimer(starTime, interval);
display = (TextView) findViewById(R.id.textViewID);
button = (Button) findViewById(R.id.buttonID);
}
public void startButtonOnClick(View view) {
if(!timerIsStarted){
timerIsStarted = true;
myTimer.start();
} else {
timerIsStarted = false;
display.setText("00");
myTimer.cancel();
}
}
public class MyCountdownTimer extends CountDownTimer {
public MyCountdownTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
Log.d(TAG, String.valueOf(millisUntilFinished));
display.setText(String.valueOf(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)));
}
@Override
public void onFinish() {
timerIsStarted = false;
Log.d(TAG, "Finished!");
Toast.makeText(getApplicationContext(), "Finished!", Toast.LENGTH_SHORT).show();
display.setText("Finished!");
}
}
}
@diogojme положил это в ответ! :) – petey
@petey Я уже сделал – diogojme