【问题标题】:Alertbox, CountDownTimer, Back button crashAlertbox、CountDownTimer、Back 按钮崩溃
【发布时间】:2012-02-12 17:43:54
【问题描述】:

我有一个应用程序,它运行倒计时计时器,并在计时器用完时显示警报框,以便游戏可以重新启动。不幸的是,当我点击返回按钮并再次打开应用程序时,它在原来的倒数计时器应该用完的时候崩溃了。

以下代码位于我的 Activity 的 onCreate 中。

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

【问题讨论】:

    标签: android countdowntimer


    【解决方案1】:

    如果没有堆栈跟踪,很难说会发生什么,但它很可能与您从您的 CountDownTimer 引用一个死的 Activity 有关。

    onDestroy() 中调用enter code hereCountDownTimer.cancel() 可能会解决这个问题。

    【讨论】:

    • 我相信你是对的。我试图这样做,但遇到的问题是,由于声明了 CountDownTimer,它不在 onDestory() 或 onPause() 的范围内。此外,这很尴尬,尽管查看了一堆其他解释它的帖子,但我一生都无法弄清楚如何定位和复制我的堆栈跟踪。
    • 您应该将“CountDownTimer cdt”放入您的活动中。您可以通过 Eclipse 中的选项卡或在终端中键入 logcat 在 logcat 中找到堆栈跟踪。
    猜你喜欢
    • 1970-01-01
    • 2019-09-04
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 2015-11-01
    相关资源
    最近更新 更多