我是一名尝试使用AsyncTask并执行HTTP请求的新手程序员。我的目标是能够使用AsyncTask执行HTTP请求。我的AsyncTask如下:
private class DownloadFilesTask extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected List<Book> doInBackground(String... params) {
return Network.getBookData(params[0]);
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
在doInBackground(String... params)
方法中出现错误,尝试使用不兼容的返回类型。我该如何解决此问题仍然让方法返回List<Book>
?
答案 0 :(得分:1)
您可以将new DownloadFilesTask(someUrl).execute(null);
参数传递给任务的构造函数,也可以作为任务的参数。您使用AsyncTask的方式会略有不同,具体取决于您使用的方式。
作为构造函数参数:
new DownloadFilesTask().execute(someUrl);
作为任务参数
onPostExecute(List<Book> result)
您应该在Task类中覆盖 <div class="sidebar-menu">
<ul>
<li><a href="#"><i class="fa fa-truck" aria-hidden="true"></i> Service </a></li>
<li><a href="#"><i class="fa fa-trophy" aria-hidden="true"></i> Product </a></li>
<li><a href="#"><i class="fa fa-trophy" aria-hidden="true"></i> Agreement </a></li>
<li><a href="#"><i class="fa fa-trophy" aria-hidden="true"></i> Contract </a></li>
</ul>
</div>
,以便在UI线程上对HTTP结果执行某些操作,例如在列表中呈现Book对象。