CountdownTimer и выход из Активности - PullRequest
0 голосов
/ 16 января 2012

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

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

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);
    }

Любое решение моей проблемы будет высоко оценено

1 Ответ

0 голосов
/ 01 декабря 2012

используйте любимый код при выходе из действия ..

  mCount.cancel();
  mCount=null;

и логическое значение в onfinish () для startActivity (finish);

...