我需要帮助从AsyncTask返回ArrayList OUT的Arraylist或在AsyncTask中设置webview。我试图在AsyncTask中设置一个webview,并得到一个错误,告诉我必须在UI线程中执行此操作。 然后我试图将一个arraylist的反对者从AsyncTask返回到我的UI线程,这也不起作用。
这是我收到的错误:
java.lang.Throwable:警告:在线程' AsyncTask#3'上调用了一个WebView方法。必须在UI线程上调用所有WebView方法。未来版本的WebView可能不支持在其他线程上使用。
的OnCreate() ---->调用我的AsyncTask,然后使用task.execute启动它 AsyncTask本身将在它准备就绪时执行onPostExecute(),然后它将不返回任何内容,因为它是无效的。
代码块1
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab2);
...
...
queriesAsync task = new queriesAsync();
task.execute(new String[] { DatabasePath });
...
代码块2
private class queriesAsync extends AsyncTask<String, Void, ArrayList> {
@Override
protected ArrayList doInBackground(String... pathToDB) {
///Do something
return ArrayList;
}
@Override
protected void onPostExecute (ArrayList result){
// return?
}
}
答案 0 :(得分:2)
我敢打赌你没有使用AsyncTask
onPostExecute()
,Thread
在doInBackground()
完成后在用户界面doInBackground()
上运行。 onPostExecute()
完成后,会将所需结果返回到在Thread
上运行的UI
。在这里,您可以随意操作{{1}}组件。