Android webview退出后崩溃问题(OPPO和vivo手机有问题)

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@b429d5e is not valid; is your activity running?at android.view.ViewRootImpl.setView(ViewRootImpl.java:925)at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:384)at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)at android.app.Dialog.show(Dialog.java:388)at android.app.AlertDialog$Builder.show(AlertDialog.java:1161)at android.webkit.JsDialogHelper.showDialog(JsDialogHelper.java:128)at com.android.webview.chromium.WebViewContentsClientAdapter.showDefaultJsDialog(WebViewContentsClientAdapter.java:416)at com.android.webview.chromium.WebViewContentsClientAdapter.handleJsAlert(WebViewContentsClientAdapter.java:350)at org.chromium.android_webview.AwContentsClientBridge$$Lambda$2.run(Unknown Source:3)at android.os.Handler.handleCallback(Handler.java:790)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:198)at android.app.ActivityThread.main(ActivityThread.java:7055)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)

今天webview 遇到了一个问题,退出后崩溃了,报错如上,并且只有oppo和vivo手机会这样子,初步判断是页面销毁了,但是代码还在运行,网上一搜发现都是在onDestroy()里面销毁,可是我在代码里面都写了如下,还是会崩溃。

if (mWebView != null) {try {mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);mWebView.clearHistory();((ViewGroup) mWebView.getParent()).removeView(mWebView);mWebView.destroy();mWebView = null;} catch (Exception e) {e.printStackTrace();}}

这个就有点头疼,仔细观看日志,发现有关键字handleJsAlert,会不会是js的alert有问题呢?
于是乎把h5里面的alert去掉后运行,果然

好了,不会崩溃了

猜想,oppo和vivo的系统没有优化这个alert

那万一h5就要用alert怎么办呢?
我们只需要重写webview的一个方法,把alert改成吐司就ok了,代码如下:

mWebView.setWebChromeClient(new WebChromeClient() {@Overridepublic boolean onJsAlert(WebView view, String url, String message, JsResult result) {Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();result.confirm();return true;}});

至此,bug就解决了,记录一下

ps:当然小米和华为都不会出现这个问题,(可能他们优化了这个问题)希望oppo和vivo优化下这个。

Android webview退出后崩溃问题(OPPO和vivo手机有问题)相关推荐

  1. vivo手机显示服务器维修中,OPPO和vivo手机通病进水后黑屏不显示怎么维修

    原标题:OPPO和vivo手机通病进水后黑屏不显示怎么维修 手机进水会造成各种毛病,不同型号的手机,问题也不尽相同,比如iPhone进水后容易短路不开机,OPPO和vivo手机进水后十有八九会黑屏不显 ...

  2. 【Android错误解决方案】解决AndroidStudio在oppo和vivo手机上安装apk失败----终极解决方案

    文章目录 [Android错误解决方案]解决AndroidStudio在oppo和vivo手机上安装apk失败---终极解决方案 问题描述 错误描述 解决方案一 解决方案二 总结 [Android错误 ...

  3. vivo手机为什么没有使用鸿蒙系统,华为推出鸿蒙系统,为何小米、OPPO、vivo手机品牌缺席合作...

    原标题:华为推出鸿蒙系统,为何小米.OPPO.vivo手机品牌缺席合作 自从华为官宣在6月2日正式发布鸿蒙OS后,无论是广大花粉还是其他用户,都非常期待这款国产手机操作系统.因为长久以来,国内的手机厂 ...

  4. php 判断 小米 手机浏览器,华为、小米、OPPO和vivo手机浏览器发布自查整改公告...

    华为.小米.OPPO和vivo手机浏览器发布自查整改公告 10月27日,华为.小米.OPPO和vivo四家手机浏览器均在首屏位置发布了自查整改公告.公告称,自即日起至11月9日,对存在的网络传播秩序问 ...

  5. oppo与vivo手机低版本兼容问题

    最近在做H5页面嵌套app的项目,有几个问题在这里说明一下 1. 不要用es6语法,为什么呢?部分oppo与vivo手机不兼容es6语法,就比如箭头函数,let,const,如果部分手机页面什么都没有 ...

  6. android应用退出后广播无效,关闭应用程序后,保持广播接收器运行

    我认为接受的答案不是实际答案.我将解释问题所在.我认为您是在Huawie,Oppo,Vivo,Xiomi,asus .......或某些设备上测试您的应用程序.使用这些设备,如果我们关闭应用程序,它们 ...

  7. android webview关闭后资源不释放,【Android】 WebView内存泄漏优化之路

    这几年H5的快速发展,使得Hybrid混合开发越来越流行,而webview也成为了开发中必备的元素.但是我们知道WebView在加载页面时,会占用非常大的内存,无论是iOS还是Android系统上,加 ...

  8. android应用退出后在任务管理器隐藏

    许多人有个习惯,就是长按android的home键,然后查看刚才使用的应用.有一些隐藏应用我们不愿给用户显示: So,只要在AndroidManifest.xml中的主Activity中添加这句话. ...

  9. android webview 炉石,重磅来袭!《炉石》手机版于4月9日发布?

    [摘要]根据一家外国媒体的爆料以及分析,炉石传说手机版客户端很有可能将于4月9日发布. 一家国外手游媒体Toucharcade于今天早些时候发布了一篇博文,主要讲了这次更新的"黑石山的火焰& ...

最新文章

  1. 网页加速系列(七)、 网页加速之异步加载
  2. Python并发Gevent库(一)
  3. C语言学习之分别用while、for 编写程序,计算1+2+3+......+100的值
  4. http的302,303和307
  5. Oracle11g的安装和使用
  6. Android的广播接收器BroadcastReceiver
  7. 一个老板向员工发的牢骚
  8. Eclipse详细安装教程
  9. 卫星通信系统按照工作轨道分类
  10. 前端计算机英语单词,解决文件命名,变量命名头皮发麻,单词超多1700个前端专属单词,css常用命名单词【起名字太烦了全背下来内卷吧小伙伴大前端时代来临了】
  11. WinAPI之ReleaseSemaphore
  12. Linux主目录下的文件夹名称改为英文
  13. 互联网+房地产最后拼什么?除了技术还是技术
  14. Android项目编译异常之AAPT: error
  15. 【前端微服务化】使用飞冰搭建前端微服务化框架
  16. 贝尔链CEO Vincent:让游戏玩家从趣味消费到价值收益
  17. 企业oa管理系统是什么
  18. 华科大计算机系李瑞轩.,李瑞轩-智能与分布计算实验室
  19. 抖音小店无货源:创业很苦,坚持很酷,她是如何做到日赚1k+的?
  20. Linux NVMe Driver学习笔记之2:初始化

热门文章

  1. (81)TCL脚本命令【lindex】
  2. Python基本图形绘制详解(给你一条线,便能绘制整个世界)
  3. 2018头条号大鱼号百家号企鹅号哪个好?自媒体赚钱?先搞清这些!
  4. 通过sql给数据库字段设置默认值
  5. XGBOOST算法过程
  6. 渗透测试中waf命令执行的绕过经验技巧
  7. 山东省论文期刊代发代写机构
  8. weui uploader java_小程序-扩展能力图片上传Uploader组件
  9. 2进制数转换成16进制数(C++)
  10. 14 Flask mega-tutorial 第14章 Ajax(百度翻译API):异步JavaScript和XML的缩写(Asynchronous Javascript And XML)