2012-02-12 5 views
0

私はカウントダウンタイマーを実行し、ゲームが再開できるようにタイマーが切れたときに警告ボックスを表示するアプリを持っています。残念ながら、私が戻るボタンを押して再びアプリケーションを開くと、元のcountdowntimerがなくなるまでにクラッシュします。Alertbox、CountDownTimer、戻るボタンのクラッシュ

次のコードは、自分のアクティビティの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(); 

答えて

0

それは何が起こるかを言うのは難しいのですが、それは最も可能性の高いあなたのCountDownTimerから死んだActivityを参照する何かを持っています。

enter code hereを呼び出すと、onDestroy()のCountDownTimer.cancel()がこれを解決するでしょう。

+0

私はあなたが正しいと信じています。私はこれをしようとしましたが、CountDownTimerが宣言されているため、onDestory()またはonPause()のスコープ内にないため、問題が発生しています。 さらに、これは恥ずかしいことです。私の人生は、スタックトレースを見つける方法を見つけ出すことができていませんでした。 –

+0

アクティビティに "CountDownTimer cdt"を入れる必要があります。スタックトレースは、eclipseのタブまたは端末のlogcatと入力することで、logcatで見つけることができます。 – alexanderblom

関連する問題