Web Worker是在ui主android线程上运行还是在单独的线程上运行?

时间:2018-10-03 17:29:28

标签: android performance web-worker android-8.0-oreo webchromeclient

我有一个使用WebChromeClient的Android版旧应用程序

  

公共类MyWebViewClient扩展了WebChromeClient

作为应用程序在Android 上运行网页最初的目的是保持应用程序(浏览器,ios和android)的显示相同。 通常,应用程序随着时间的推移(5年)变得越来越复杂,并且使用本地Web数据库存储状态以加快启动速度。

使用最新版本的Android Oreo OS,我的应用收到ANR警告。我意识到是时候重新设计了,但是时间表很紧。 如果我将初始化代码(使用回调(承诺)的Web数据库,...)移动到html 5 Web Worker中,那么该代码是否可以在Android应用程序中的单独线程(主ui线程之外)上运行? 这样可以解决ANR吗?还是我必须完全重新设计?

  

Web Worker是在主ui android线程上还是在单独的线程上运行?顺便说一句-在最新的IOS中,Web Worker是在主线程上运行还是在单独的线程上运行?

谢谢您的输入。

1 个答案:

答案 0 :(得分:0)

webview不能在Android UI线程上运行。该问题与Web视图完全无关。相反,ANR是已知的Android Oreo更改。我能够通过以下方式修复它 this post