Android中更新UI常見的方式有4種:runOnUIThread、handler post、handler sendMessage、view post.
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供桑日網(wǎng)站建設(shè)、桑日做網(wǎng)站、桑日網(wǎng)站設(shè)計、桑日網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、桑日企業(yè)網(wǎng)站模板建站服務(wù),十余年桑日做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
先使用handler post的方法更新UI
handler.post(r)方法中需要傳遞進(jìn)去一個Runnable對象,可以直接在里面新建一個Runnable對象,接著在Runnable的run方法中對UI進(jìn)行操作
進(jìn)入 handler.post(r)的源碼中
可以看到,其實這種方法里面也是通過發(fā)送延遲消息的方式對UI進(jìn)行操作的。
下面用handler sendMessage更新UI
該方法就是通過在子線程中發(fā)送消息通知主線程更改UI,這是比較常見的方式
下面用runOnUIThread的方法
runOnUIThread(action)需要傳遞一個Runnable對象作為參數(shù),此時可以new一個Runnable再實現(xiàn)它的run方法,在run方法里對UI進(jìn)行操作
從源碼當(dāng)中可以看到,系統(tǒng)先會判斷該線程是否為UI線程,如果不是就通過handler去更新,是就通過UI線程的run方法更新
下面用view post方法
源碼
其實這四種方法都是通過handler對UI進(jìn)行更新的,只是具體方法形式存在大同小異的區(qū)別而已