Android - я пытаюсь сбросить мой таймер каждый раз, когда нажимается кнопка, и когда она не нажата в течение 5 секунд, нужно, чтобы она вернулась на исходную страницу (действие) - PullRequest
0 голосов
/ 05 февраля 2012

Код до сих пор: я не нет, если я должен использовать потоки или какой таймер -_--

clicker.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        counter++;

        seconds = 5000;
        timer.schedule(new TimerTask() {
            public void run() {
                Intent x =  new Intent(startClickActivity.this, ClickCountActivity.class);
                startActivity(x);
            }
        }, seconds);
    }
});

1 Ответ

8 голосов
/ 05 февраля 2012

Это должно быть внутри вашего класса.

class MyTimerTask extends TimerTask
{
   public void run()
   {
      Intent x =  new Intent(startClickActivity.this, ClickCountActivity.class);
      startActivity(x);
   }
}

А это на старом месте.

// ...
// Your code
MyTimerTask task = new MyTimerTask();
final long seconds = 5;
timer.schedule(task,seconds*1000L);
clicker.setOnClickListener(new View.OnClickListener() 
{
   public void onClick(View v) 
   {                                                                   
      counter++;
      task.cancel();
      task = new MyTimerTask();
      timer.schedule(task,seconds*1000L);
   }
});

Я думаю, что это должно работать хорошо:)

Кстати, твой код:

if(seconds==5000)
   timer.cancel(); 

Всегда отменяет / прекращает работу вашего таймера, потому что переменная seconds установлена ​​вами и всегда равна 5000.

...