wasabeef / richeditor-android

RichEditor for Android is a beautiful Rich Text WYSIWYG Editor for Android.
Apache License 2.0
6.24k stars 1.2k forks source link

leak window? #88

Open Swordce opened 7 years ago

Swordce commented 7 years ago

WindowManager: android.view.WindowLeaked: Activity com.bagevent.new_home.new_activity.ReleaseEventDetail has leaked window com.android.org.chromium.content.browser.input.PopupTouchHandleDrawable{3b1fb9ee V.ED.... ........ 0,0-60,72} that was originally added here at android.view.ViewRootImpl.(ViewRootImpl.java:472) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:278) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85) at android.widget.PopupWindow.invokePopup(PopupWindow.java:1153) at android.widget.PopupWindow.showAtLocation(PopupWindow.java:978) at android.widget.PopupWindow.showAtLocation(PopupWindow.java:942) at com.android.org.chromium.content.browser.input.PopupTouchHandleDrawable.show(PopupTouchHandleDrawable.java:351) at com.android.org.chromium.android_webview.AwContents.nativeOnDraw(Native Method) at com.android.org.chromium.android_webview.AwContents.access$4600(AwContents.java:90) at com.android.org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDraw(AwContents.java:2623) at com.android.org.chromium.android_webview.AwContents.onDraw(AwContents.java:1197) at com.android.webview.chromium.WebViewChromium.onDraw(WebViewChromium.java:1759) at android.webkit.WebView.onDraw(WebView.java:2469) at android.view.View.draw(View.java:15606) at android.view.View.updateDisplayListIfDirty(View.java:14495) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499) at android.view.View.updateDisplayListIfDirty(View.java:14445) at android.view.View.getDisplayList(View.java:14524) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:279) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:285) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:335) at android.view.ViewRootImpl.draw(ViewRootImpl.java:2986) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2799) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2405) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1315) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6678) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800) at android.view.Choreographer.doCallbacks(Choreographer.java:603) at android.view.Choreographer.doFrame(Choreographer.java:572) at android.view

Swordce commented 7 years ago

et_event_detail.clearFocusEditor(); et_event_detail.removeAllViews(); I use the above two lines of code, do not know will cause other bug. Can you give me some suggestion?

rafal-adamek commented 7 years ago

I confirm this bug. It occurs whenever I leave activity with richtexteditor after doing some operation there. @Swordce solution didn't work for me.

rafal-adamek commented 7 years ago

It looks like the problem itself isn't with the RichEditor in particular but with the WebView. I found this error when dealing with the WebView and any system pop-ups that show (e.g. copy and paste alert). It looks like they're not properly removed from the widget. What helped me is calling webView.destroy() when finishing the activity.

Here's a Stack overflow topic on this matter

shusheng007 commented 7 years ago

I think you should release resource used by WebView before finish the Activity,try add webView.loadUrl("about:blank"); in the onDestroy()