Java 如何将Arraylist从AsyncTask返回到UI线程
我需要从AsyncTask中返回Arraylist of Arraylist或在AsyncTask中设置webview的帮助。我试图在AsyncTask中设置webview,但出现了一个错误,告诉我必须在UI线程中进行设置。 然后,我尝试将arraylist从AsyncTask返回到我的UI线程,但这也不起作用 这是我收到的错误: Throwable:警告:在线程“AsyncTask#3”上调用了WebView方法。必须在UI线程上调用所有WebView方法。WebView的未来版本可能不支持在其他线程上使用 Oncreate() ---->调用我的AsyncTask,然后用task.execute启动它 AsyncTask本身将在准备就绪时执行onPostExecute(),然后它将不返回任何内容,因为它是空的 代码块1Java 如何将Arraylist从AsyncTask返回到UI线程,java,android,arraylist,android-asynctask,android-webview,Java,Android,Arraylist,Android Asynctask,Android Webview,我需要从AsyncTask中返回Arraylist of Arraylist或在AsyncTask中设置webview的帮助。我试图在AsyncTask中设置webview,但出现了一个错误,告诉我必须在UI线程中进行设置。 然后,我尝试将arraylist从AsyncTask返回到我的UI线程,但这也不起作用 这是我收到的错误: Throwable:警告:在线程“AsyncTask#3”上调用了WebView方法。必须在UI线程上调用所有WebView方法。WebView的未来版本可能不支持在
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?
}
}
私有类queryAsync扩展了AsyncTask{
@凌驾
受保护的ArrayList doInBackground(字符串…pathToDB){
///做点什么
返回数组列表;
}
@凌驾
受保护的void onPostExecute(ArrayList结果){
//返回?
}
}
我敢打赌您没有使用AsyncTask
的onPostExecute()
,它在doInBackground()完成后在UI线程上运行。当doInBackground()
完成时,它会将所需结果返回到运行在UI线程上的onPostExecute()
。在这里,您可以随心所欲地操作UI
组件。这说明了如何使用它,至少可以为您的问题添加一些代码!嗨,我用的是onPostExecute(),但那是一个viod函数,对吗?你说的“void函数”是什么意思?受保护的void onPostExecute()当我试图将其更改为其他void函数时,它不喜欢是的,问题是什么?它从doInBackground()
接收结果,并在UI线程上运行。