nếu bạn sử dụng mã dưới đây (như được đề cập trong câu trả lời được chấp nhận),
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
//here you can have your logic to set text to edittext
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
Nó sẽ dẫn đến rò rỉ bộ nhớ của thể hiện của hoạt động mà bạn sử dụng mã này, nếu bạn không dọn dẹp cẩn thận các tài liệu tham khảo.
sử dụng mã sau
//Declare timer
CountDownTimer cTimer = null;
//start timer function
void startTimer() {
cTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
}
};
cTimer.start();
}
//cancel timer
void cancelTimer() {
if(cTimer!=null)
cTimer.cancel();
}
Bạn cần gọi cTtimer.cattery () bất cứ khi nào onDestroy () / onDestroyView () trong Activity / Fragment sở hữu được gọi.