我想在地址中获取链接,并使用Jsoup
和RecyclerView
,所以我这样做:
public static List<News> newsList(String url) {
List<News> newsArrayList = new ArrayList<>();
try {
Document document = Jsoup.connect().get();
Elements newsElements = document.select(".boxMiddle .grpLinks a");
int i = 1;
for (Element newsElement : newsElements) {
News news = new News();
news.setId(i);
news.setTitle(newsElement.text());
news.setDate(newsElement.attr("title"));
news.setUrl(Uri.parse("www.google.com"));
newsArrayList.add(news);
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
return newsArrayList;
}
但是,我收到此错误:android.os.NetworkOnMainThreadException
!
如何解决此错误?
答案 0 :(得分:0)
请使用AsyncTask。您无法在UIThread上进行网络呼叫。
https://developer.android.com/reference/android/os/AsyncTask.html
答案 1 :(得分:0)
为您的I / O使用AsyncTask
。您无法在主线程上执行网络连接。
new AsyncTask<Void, Void, Void>(){
public void doInBackground(Void... params){
//I/O here
}
}.execute();