实际上,重构古老代码的问题出现了,所以我需要通过JSOUP来解析页面。实际上,替换旧的AsyncTAsk更好,精度更高?我只是想了解一切,一切正常。而且如果用一个例子一般来说超级。谢谢。这是一个很酷的怪物:
@SuppressLint("StaticFieldLeak")
class Parser extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
Document doc = null;
try {
doc = Jsoup.connect(URL)
.userAgent("Chrome/4.0.249.0 Safari/532.5")
.referrer("http://www.google.com")
.get();
Elements views_row = doc.select("div.views-row");
dashboardList.clear();
for (Element element : views_row) {
Elements header = element.select("header");
String title = header.select("span").attr("content");
String description = element.select("div.field.field-name-body.field-type-text-with-summary.field-label-hidden").text();
String author = element
.select("div.field.field-name-field-novost-avtor.field-type-entityreference.field-label-hidden")
.select("a")
.text();
String date = element
.select("span.date-display-single")
.attr("content");
String img = element
.select("img.img-responsive")
.attr("abs:src");
String web_link = element
.select("article.node")
.attr("abs:about");
UniverseNews universeNews = new UniverseNews(
img,
title,
description,
author,
date,
web_link
);
dashboardList.add(universeNews);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (dashboardList == null || dashboardList.isEmpty()) {
showError();
} else {
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
hideProgress();
}
mLastClickTime = SystemClock.elapsedRealtime();
}
}