2011-04-04 147 views
0

好像我的應用程序在很長一段時間沒有使用後崩潰... 重現:不要使用應用程序一天。然後嘗試重新開始。一天後崩潰

我想這是在應用程序處於停止模式時發生的,但無法確定。 我的問題是 - 我該如何調試? 另外 - 我怎樣才能防止這種情況?

,我相信這是什麼原因造成的:

java.lang.IllegalArgumentException: View not attached to window manager 
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:391) 
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:236) 
at android.view.Window$LocalWindowManager.removeView(Window.java:432) 
at android.app.Dialog.dismissDialog(Dialog.java:278) 
at android.app.Dialog.access$000(Dialog.java:71) 
at android.app.Dialog$1.run(Dialog.java:111) 
at android.os.Handler.handleCallback(Handler.java:587) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:143) 
at android.app.ActivityThread.main(ActivityThread.java:5061) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
at dalvik.system.NativeStart.main(Native Method) 
+0

你介意改變你的窗口方向,看看是否有任何與崩潰有關的東西嗎? – JSWork 2011-04-04 14:00:41

+0

你有沒有被解僱的進度對話框? – rpcutts 2011-04-04 14:03:35

+0

我在第一個屏幕上沒有進度對話框。第一個屏幕還有: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); – OkyDokyman 2011-04-04 14:22:07

回答

1

這裏是一個可能的解決方案:How to handle screen orientation change when progress dialog and background thread active?

當您切換方向,Android將創建一個新的視圖。你可能會因爲後臺線程試圖改變舊版本的狀態而崩潰。 (它可能也有麻煩,因爲你的後臺線程不在UI線程上)

tl; dr:當設備方向改變時,你必須更新你的屏幕處理程序。

+0

我認爲他的意思是'改變方向,看看是否會導致同樣的崩潰'。 – Torp 2011-04-04 14:17:30

+0

準確。也許日常使用會導致方向更改,並導致問題。 – 2011-04-04 15:12:39