2015-09-17 71 views
-3

我有一個應用程序的機器人。所有的代碼都可以,沒有錯誤,但我不知道我的應用程序有時會有一個關閉的力量。你能幫我解決這個問題嗎?應用程序android force關閉

,這裏是我的logcat:

09-17 02:35:36.352: E/AndroidRuntime(2031): FATAL EXCEPTION: main 
09-17 02:35:36.352: E/AndroidRuntime(2031): Process: com.sendquiz.guessanimalsquiz, PID: 2031 
09-17 02:35:36.352: E/AndroidRuntime(2031): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.view.ViewRootImpl.setView(ViewRootImpl.java:532) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.app.Dialog.show(Dialog.java:286) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at com.sendquiz.javafile.TimeCompleteDialog.showDialog(TimeCompleteDialog.java:47) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at com.sendquiz.guessanimalsquiz.QuizActivity.onTimeFinish(QuizActivity.java:240) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at com.sendquiz.guessanimalsquiz.QuizActivity$1.run(QuizActivity.java:49) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.os.Handler.handleCallback(Handler.java:733) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.os.Handler.dispatchMessage(Handler.java:95) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.os.Looper.loop(Looper.java:136) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at android.app.ActivityThread.main(ActivityThread.java:5001) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
09-17 02:35:36.352: E/AndroidRuntime(2031):  at dalvik.system.NativeStart.main(Native Method) 

這裏是我的代碼:

public void gameCompleted(){ 
     GameCompleteDialog dialog=new GameCompleteDialog(QuizActivity.this,SCORE_COUNTER); 
     dialog.buildDialog(); 
     dialog.showDialog();    
     handler.removeCallbacks(timerThread); 

    } 
    public void onTimeFinish() { 
     stopTimer(); 
     TimeCompleteDialog dialog=new TimeCompleteDialog(this); 

     dialog.showDialog(); 

     AnswerHandler.vibrate(this); 

    } 
} 
+0

對話框似乎是一個問題 –

+0

可能重複的[錯誤:BinderProxy @ 45d459c0無效;是你的活動運行?](http://stackoverflow.com/questions/7811993/error-binderproxy45d459c0-is-not-valid-is-your-activity-running) – user2413972

回答

1

看來,在這個answer的決定。

if(!((Activity) context).isFinishing()) 
{ 
    //show dialog 
} 

所有其他的答案那裏似乎在做奇怪的事情想通過跑步活動的列表進行迭代,但這是簡單得多,似乎這樣的伎倆。

+0

如何將此代碼添加到我的腳本?對不起,我是新手在java –

+0

我還沒有看到你的代碼。 – user2413972

+0

我已更新我的問題先生 –

0

請嘗試下面的代碼。根據您的需要修改它

我遇到完全相同的問題。調用'(!isFinishing())'防止了崩潰,但它不能顯示'alert'消息。

然後我試着調用函數'static',在那裏顯示alert。之後,沒有發生崩潰,消息也顯示出來。

public static void connect_failure() {  
     Log.i(FW_UPD_APP, "Connect failed"); 

     new AlertDialog.Builder(MyActivity) 
     .setTitle("Title") 
     .setMessage("Message") 
     .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
        //do nothing 
      } 
     }) 
     .setIcon(R.drawable.the_image).show();  
    }