說說android非同步載入的三種方式之執行緒的使用

2021-08-31 13:12:17 字數 901 閱讀 5376

第一種,使用執行緒

實用場景一:比如需要聯網的操作,我們知道網際網路的效率相對來說是不恆定的,有時候快,有時候慢,如果遇上網路不好的時候,程式一直處於聯網等待狀態,一方面給使用者不好的體驗,另一方面很容易出現經典的anr異常。

實用場景二:比如帶的listview的顯示,我們知道通常的比文字資訊大很多,如果listview帶,我們同步的獲取文字和,這樣的載入效率會比較慢,通常的做法是會在主線程裡去拉取文字資訊,然後另外乙個執行緒非同步的載入。

非同步載入資訊時需要注意的乙個問題,那就是在手動開啟的執行緒中不允許直接操主線程(也即是activity)裡面的ui,不過android提供了一套比較完善的方案。

第一步:使用progressdialog對話方塊,它是乙個帶進度條的資訊提示框,比如經典的提示語「正在。。。。請稍後。。。」,該對話方塊一旦被show,直到被dismiss都將一直顯示。

使用示例:

progressdialog progressdialog = progressdialog.show(context,"提示框的標題", "提示框的主體內容...", true, false);
第二步:使用執行緒執行比較耗時的操作

new thread()  catch (exception e)  finally

}}.start();

第三步:使用handler更新ui。

前邊說了,手動開啟的執行緒裡面是不能直接操作主程序裡面的ui,所以android提供了乙個handler類來接收執行緒的訊息,然後更新ui。

/**

* 用handler來更新ui

*/private handler handler = new handler()

} };

Android中的非同步載入

案例原始碼 asynctaskbythread.rar案例原始碼 整體思路 1 首先在oncreate方法中new newsasynctask 2 將url傳入,實現對此url的非同步訪問 3 先將url獲取的資料封裝到newsbean物件中,4 然後在newsasynctask類中將其設定到lis...

JS非同步載入的三種方式 js載入

一 同步載入 我們平時使用的最多的一種方式。同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止後續的解析,只有當當前載入完成,才能進行下一步操作。所以預設同步執行才是安全的。但這樣如果js中有輸出document內容 修改dom 重定向等行為,就會造成頁面堵塞。所以一般建議把 firefox 3....

JS非同步載入的三種方式

我們平時使用的最多的一種方式。同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止後續的解析,只有當當前載入完成,才能進行下一步操作。所以預設同步執行才是安全的。但這樣如果js中有輸出document內容 修改dom 重定向等行為,就會造成頁面堵塞。所以一般建議把 firefox 3.6 opera...