Android網路請求完成之後更新UI的幾種方法

2021-10-02 03:21:26 字數 702 閱讀 9817

首先我們需要明確幾點:

1、網路請求因為是耗時操作,不能再主線程中進行,所以只能在子執行緒中進行

2、更新ui是必須在主線程中進行的

所以,我們要在網路請求之後更新ui需要做以下幾個步驟:

1、在主線程中new乙個子執行緒

2、在子執行緒中進行網路請求

3、網路請求結束之後更新ui

對於上面的3個步驟有兩種方法可以供選擇,乙個是採用thread和handler,另外一種就是採用asyntask。

(1)對於thread加handler,就是在子執行緒(thread)中完成載入之後,利用handler將網路請求得到的資料放在message中,並在handler中實現ui更新。

(2)對於asyntask,就是要重寫doinbackground()方法完成網路載入這樣的耗時操作,重寫onpostexecute()方法,因為onpostexecute()實在主線程中進行的,所以在onpostexecute()中進行ui的更新。下面的**是我的乙個例子,首先是類bitmaptask繼承自asynctask

new asynctask()

/*** 耗時操作,這裡面的內容android系統會自動為你啟動乙個新的執行緒執

*/@override

protected object doinbackground(object... arg0) }.execute();

Android網路請求完成之後更新UI的幾種方法

首先我們需要明確幾點 1 網路請求因為是耗時操作,不能再主線程中進行,所以只能在子執行緒中進行 2 更新ui是必須在主線程中進行的 所以,我們要在網路請求之後更新ui需要做以下幾個步驟 1 在主線程中new乙個子執行緒 2 在子執行緒中進行網路請求 3 網路請求結束之後更新ui 對於上面的3個步驟有...

android原始碼編譯完成之後

android原始碼編譯完成之後,在根目錄下會有乙個out目錄生成,如果我們想要執行虛擬機器的話,需要配置一下環境變數 首先我們使用下面的命令開啟配置環境變數的檔案 gedit bashrc在這個檔案的最後,新增如下 export android product out android out ta...

Android非同步網路請求

安卓4.0版本以上不允許在主線程中進行網路請求,如果在主線程進行網路請求,會造成頁面假死,甚至程式異常。因此需要開乙個新執行緒來進行網路請求 開乙個新執行緒 new thread new runnable catch exception e start handler mhandler new ha...