程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-二層爬蟲程序數據獲取問題?

android-二層爬蟲程序數據獲取問題?

編輯:編程綜合問答
二層爬蟲程序數據獲取問題?

比如我定義了一個實體類,如下
MessageItem{
string title;
string image Url;
……
}
省略號為get和set方法。

現在我用開啟了一個線程請求網頁數據,可是這個網頁只有標題,和內容鏈接。我在這個線程返回的數據中setTitle()的值,可是面對後面鏈接我又得開一個線程來獲取圖片鏈接,可是當我在第二個線程中這樣做的時候,數據已經返回了,即使獲得了圖片鏈接,也沒有存儲到我在第一個線程中創建的實體類中。我在第一個線程中執行玩後調用第二個線程才返回實體類,可是沒等返回第二數據設置,數據就已經返回了。可能不好理解,我配上代碼。

假如我用的某個網絡請求類為okHttp

okHttp.get(url,new CallBack(){
public void success(string response){
MessageItem item =new MessageItem()
......
上面一段解析獲得了,文章標題,和文章內容鏈接。
item.setTitle(title);
因為獲取的是文章鏈接不是圖片鏈接我這個時候又開了一個異步
okHttp.get(contentUrl,new CallBack(){
public void success(string response{
這裡解析後我獲得了圖片鏈接於是我設置
item.setImageUrl(imageUrl)imageUrl;
}
});
return item ;
}
});

假如上面的代碼包裹在一個方法中,返回實體類數據,並設置到Android界面,可是第二個異步還沒執行完,第一個異步獲取的結果就已經返回了,我設置到界面的圖片鏈接就為空。

我知道異步不阻塞UI怎麼保證第二個異步中的數據設置到MessageItem中在返回呢?

最佳回答:


可以利用handler來進行這種異步的操作

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved