如何解决此问题“必须从UI线程调用方法”

时间:2016-07-01 04:53:15

标签: android webview android-asynctask

我正在尝试使用AsyncTask中的WebView(位于Fragment中)打开一个URL。

Butterknife用于绑定视图(WebView)。以下与WebView相关的代码是在doInBackground()

AsyncTask内编写的
mWebView.getSettings().setJavaScriptEnabled(false);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

然而,在编写与WebView相关的代码时,IDE警告我“必须从UI线程调用方法getSettings(),当前推断的线程是工作者”

这是什么意思?对不起,但有人可以解释发生了什么。我应该使用像runOnUiThread()这样的东西吗?

3 个答案:

答案 0 :(得分:2)

您必须在mWebView.getSettings().setJavaScriptEnabled(false); OnCreate()方法中移动runOnUiThread()

答案 1 :(得分:1)

mWebView.getSettings().setJavaScriptEnabled(false);中写下runOnUiThread()或将其移至onPostExecute()

答案 2 :(得分:0)

您无法从后台线程更新mWebView.getSettings().setJavaScriptEnabled(false);。您需要在onPostExecute()或OnCreate Method

中执行此操作