2010-03-04 4 views
7

Я сделал приложение в 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 
    } 
}); 

ответ

10
start1.cancel()

правильный метод для вызова, чтобы отменить таймер.

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

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

public class someClass { 

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

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

1

вызова start1.cancel(), если вы хотите, чтобы остановить таймер

+0

я уже попробовали, но он не поддерживает. – BIBEKRBARAL

+0

Можете ли вы показать нам, как вы это делаете? Возможно, эта проблема может лежать ... – Prashast

+0

я start1.cancel следующим образом ... quitApplication.setOnClickListener (новый OnClickListener() \t \t { \t \t \t общественного недействительными OnClick (View v) \t \t \t { \t \t \t \t \t \t \t start1.cancel(); \t \t \t \t Интен t i = new Intent (v.getContext(), startGame.класс); \t \t \t startActivity (i); \t \t \t \t \t \t \t // TODO автоматическая генерация метод заглушки \t \t \t \t \t \t \t} \t \t \t \t \t \t \t}); – BIBEKRBARAL

2

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

как так

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

, который должен работать

+1

Почему это имеет значение? –