Alertbox, CountDownTimer, сбой кнопки «Назад» - PullRequest
0 голосов
/ 12 февраля 2012

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

Следующий код находится в onCreate of Activity.

        CountDownTimer cdt = new CountDownTimer(totalTime*1000, 1000) { 
        public void onTick(long millisUntilFinished) {
            time = (int) ((millisUntilFinished)/1000)*100/totalTime;             
            TimeBar.setProgress(time);
        }

        public void onFinish() {
            time = 0;            
            TimeBar.setProgress(time);
            AlertDialog.Builder alertbox = new AlertDialog.Builder(mContext);
            alertbox.setMessage("Sweet! " + score + " points!");
            alertbox.setPositiveButton("Leaderboard", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                    ScoreloopManagerSingleton.get().onGamePlayEnded((double) score, null);
                    startActivity(new Intent(BubblesActivity.this, LeaderboardsScreenActivity.class));
                    BubblesActivity.this.finish();

                }
            });
            alertbox.setNeutralButton("Replay", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                    BubblesActivity.this.finish();
                    startActivity(new Intent(BubblesActivity.this, BubblesActivity.class));

                }
            });
            if(alertbox!= null)
                alertbox.show();



        }
    }.start();

1 Ответ

0 голосов
/ 12 февраля 2012

Без трассировки стека трудно сказать, что происходит, но, скорее всего, есть что-то, что вы можете сделать, ссылаясь на мертвую Activity из вашего CountDownTimer.

Вызов enter code here CountDownTimer.cancel () в onDestroy(), вероятно, решит эту проблему.

...