Таймер не останавливается в Android - PullRequest
7 голосов
/ 04 марта 2010

Я сделал приложение в Android и использовал таймер, как это ..

try {
    CountDownTimer  start1 = new CountDownTimer(20000, 1000) {

        public void onTick(long millisUntilFinished) {
                TextView timeShow = (TextView)findViewById(R.id.showTime);
        timeShow.setText(" "+" 00:" +millisUntilFinished / 1000);
            }

Но моя проблема в том, что я не знаю, как остановить таймер. Есть идеи?

Я уже пробовал:

quitApplication.setOnClickListener(new OnClickListener() {
    public void onClick(View v) { 
        start1.cancel(); 
        Intent i = new Intent(v.getContext(), startGame.class);
        startActivity(i);
        // TODO Auto-generated method stub 
    } 
}); 

Ответы [ 3 ]

10 голосов
/ 19 мая 2011

start1.cancel() - правильный метод вызова таймера для отмены.

Вы не предоставили никаких сведений об ошибке, которую вы получили, или о том, почему она не сработала для вас, но я предполагаю, что ваша программа не скомпилировалась, потому что ваша переменная start1 является локальной переменной, Вероятно, он является локальным для любого метода, в котором находится ваш блок try. Это означает, что ваша конструкция OnClickListener не знает, что такое start1.

Чтобы исправить это, просто объявите start1 как переменную класса (вне всех методов, но внутри класса):

public class someClass {

CountDownTimer start1;
// blah some code
public void someMethod {
   try {
      start1 = new CountDownTimer() { //etc

Это позволит другим методам распознавать и взаимодействовать с start1

2 голосов
/ 22 марта 2011

Я знаю, что это год, но для будущих читателей вам просто нужно вызвать таймер в качестве финала.

вроде так

final CountDownTimer  start1 = new CountDownTimer(20000, 1000) {}

это должно работать

1 голос
/ 04 марта 2010

вызовите start1.cancel (), когда вы хотите остановить таймер

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