2012-01-16 4 views
0

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

Мой код для таймера

class MyCount extends CountDownTimer{ 
    public MyCount(long millisInFuture, long countDownInterval) { 
    super(millisInFuture, countDownInterval); 
    } 
    @Override 
    public void onFinish() { 


     Intent finish= new Intent(QuestionScreen.this,ResultScreen.class); 
     finish.putExtra("noofques", Integer.toString(totalquestions)); 
     finish.putExtra("correct", Integer.toString(score)); 
     startActivity(finish); 
     overridePendingTransition(R.anim.slideinleft, R.anim.slideoutleft); 
    } 
    @Override 
    public void onTick(long millisUntilFinished) { 
     if(millisUntilFinished>60000) 
     timerview.setText((millisUntilFinished/(1000*60))+1 +" minutes left"); 
     else 
     { 
     timerview.setText(millisUntilFinished/1000 +" seconds left"); 
     } 
    } 
    } 

и код для выхода из игры в середине является

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     AlertDialog.Builder alertbox = new AlertDialog.Builder(this); 
     alertbox.setMessage("Do you really want to quit"); 
     alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface arg0, int arg1) { 
       Intent info = new Intent(QuestionScreen.this,com.preciselabs.mental_skills.MenuScreen.class); 
       info.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       finish(); 
       startActivity(info); 
       overridePendingTransition(R.anim.slideinright, R.anim.slideoutright); 
       } 
     }); 
     alertbox.setNegativeButton("No", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface arg0, int arg1) { 
      } 
     }); 
     alertbox.show(); 
    return true; 
    } 
    return super.onKeyDown(keyCode, event); 
    } 

любое решение моей проблемы будет очень цениться

+0

Не используйте эту вещь 'onTick' и используйте' java.util.Timer' для программирования какого-либо действия. –

ответ

0

использовать код Белове, когда вы деятельность по выходу.

mCount.cancel(); 
    mCount=null; 

и boolean в onfinish() для startActivity (финиш);