2016-05-10 2 views
0

Ich erhalte wegen des Fortschrittsdialogs ein geleaktes Fenster. Bereits progress.dismiss (eine der gegebenen Antworten) nach dem Laden der Seite versucht. Konnte den Grund des Absturzes nicht herausfinden:/ Wenn Sie irgendeine Idee erhalten, teilen Sie bitte.Durchgesickertes Fenster im Androide-Webview-Fortschrittsdialog

Dies ist mein Fehlerprotokoll, das den Bereich des Problems angibt, sind progressDialog.show(); und progressDialog.dismiss(); in onFinishedPage()

05-10 18:48:37.044 3470-3470/com.evolved.ayshir.picdrift E/WindowManager: android.view.WindowLeaked: Activity com.evolved.ayshir.picdrift.Webview has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{268317b8 V.E..... R.....ID 0,0-1026,348} that was originally added here 
                      at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363) 
                      at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271) 
                      at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85) 
                      at android.app.Dialog.show(Dialog.java:298) 
                      at com.evolved.ayshir.picdrift.Webview.onCreate(Webview.java:40) 
                      at android.app.Activity.performCreate(Activity.java:5990) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418) 
                      at android.app.ActivityThread.access$900(ActivityThread.java:154) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5289) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 
05-10 18:48:40.271 3470-3470/com.evolved.ayshir.picdrift E/AndroidRuntime:                                        java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{268317b8 V.E..... R.....ID 0,0-1026,348} not attached to window manager 
                      at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:396) 
                      at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:322) 
                      at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116) 
                      at android.app.Dialog.dismissDialog(Dialog.java:341) 
                      at android.app.Dialog.dismiss(Dialog.java:324) 
                      at com.evolved.ayshir.picdrift.Webview$MyWebViewClient.onPageFinished(Webview.java:113) 
                      at com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished(WebViewContentsClientAdapter.java:524) 
                      at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:188) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5289) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 

Antwort

1

Ich habe etwas ähnliches Problem gehabt. Ich habe herausgefunden, dass unter bestimmten Umständen der boolesche Befehl isShowing false zurückgibt, obwohl der Dialog angezeigt wird. Versuchen Sie, nur zu überprüfen, ob es nicht null ist und rufen Sie es ab. Das hat für mich geklappt.

0

Zuerst initialisieren

progressDialog = new ProgressDialog(Webview3.this); 
    progressDialog.setMessage("Loading..."); 
    progressDialog.show(); 

und dann folgenden Code setzen

webView.setWebViewClient(new MyWebViewClient()); 
    webView.setBackgroundResource(R.drawable.test1); 
    webView.setBackgroundColor(0x00000000); 
Verwandte Themen