gpt4 book ai didi

android - 无法创建线程中的 WebView

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:17:10 25 4
gpt4 key购买 nike

我有一些线程,我在其中创建了一些 View 并准备显示它们。其中我还有一个WebView。此代码在线程中执行:

WebView lGraphWebView = null;
try{
lGraphWebView = new WebView(AppController.getAppController());
}catch (Exception e) {
Log.d("info", "error: " +e );
}

并抛出以下异常:

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

这有点奇怪,因为当我创建一个简单的按钮时一切正常。那么,任何人都可以向我解释为什么在创建 WebView 时我得到这个异常,如果 Looper.prepare() 可以在这里提供帮助吗?提前致谢!

最佳答案

一般来说,在主线程之外创建 View 是不安全的。

在您的特定情况下,这是不允许的,因为 WebView 在其构造函数中创建了 Handler() 以与 UI 线程通信。但是由于 Handler 的默认构造函数将自身附加到当前线程,并且当前线程没有运行 Looper,所以您会遇到此异常。

您可能认为创建循环线程(必须至少与 WebView 一样长)可能对您有所帮助,但这实际上是一种冒险的方式。我不会推荐它。

您应该坚持在主线程中创建 WebView。所有控件通常都针对快速构建进行了优化,因为它们几乎总是在 UI 线程中创建。

关于android - 无法创建线程中的 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com