CountdownTimer并退出活动

问题描述:

我制作了一个游戏模块,其中用户被授予一分钟回答问题的权限,然后调用一个意图来显示结果,我的问题是当我退出中间的活动时,它仍然显示了游戏完成时间的结果,无论我在做什么活动。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'来编程一些动作。 – 2012-01-16 17:14:36

使用belove代码时,你退出活动..

mCount.cancel(); 
    mCount=null; 

和onfinish()中的布尔值startActivity(finish);