努力就有收获

这里的东西都是自己的学习经历,以后年纪大了,会看到曾经的自己!

Receiver not registered: android.widget.ZoomButtonsController crash android 分析与解决方案

Receiver not registered: android.widget.ZoomButtonsController crash android

今天在听云上发现这样一个 bug, 崩溃到了

    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow(); //崩溃提示到这个地方
        //TODO
}

应该没有直接关系。

参考该链接得知:

http://blog.csdn.net/liu857279611/article/details/52069637

解决方案是各种hack
1. 如果不需要直接禁用即可(首选)
2. 重载webview,destroy的时候处理zoomButtonController
3. 重载Activity,延迟2秒destroy webview
4. finish之前把webview及所有子view从rootview里remove掉. (这个没试过)

http://www.linuxidc.com/Linux/2011-10/44339.htm

分析后知道 WebView的源码就可以知道ZoomButtonsController有一个register和unregister的过程。但是这两个过程是我们控制不了的,WebView有显示控制的API但我们访问不过。我们能访问到的只有这几个和ZoomButtonsController的控制相关:

        void setBuiltInZoomControls(boolean enabled)
        void setDefaultZoom(WebSettings.ZoomDensity zoom)
        void setDisplayZoomControls(boolean enabled)
        void setSupportZoom(boolean support)

试过了一遍都不管用。
最终解决方案是:

web.setVisibility(View.GONE);把WebView设置为GONE就可以了。

另外,这个问题在2.X上面不存在。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdky005/article/details/67633219
文章标签: android 解决方案 bug
个人分类: Android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭