前言
成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設與網(wǎng)站營銷,提供網(wǎng)站設計制作、成都網(wǎng)站設計、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序設計、公眾號商城、等建站開發(fā),成都創(chuàng)新互聯(lián)網(wǎng)站建設策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。在android開發(fā)中,界面UI的更新都是在主線程來完成的。線程分為主線程(Main Thread,簡稱MT)和工作線程(Work Thread,簡稱WT),我們通常會在WT中執(zhí)行一些比較耗時的操作,比如下載,網(wǎng)絡,緩存等,然后在將結果發(fā)送給MT進行UI的更新操作。如果是在WT進行UI的更新,則會拋出異常,android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.(只有創(chuàng)建這個View的原始線程才能修改這個view)。
在BT搜索、WIFI搜索、其他需要更新View的UI過程中,很多是采用廣播的方式通知搜索的結果,實時的顯示到listview中進行UI的更新操作。通常會使用以下幾種方式進行UI的更新:handler,runOnUiThread,子線程發(fā)送Message。
一、Activity.runOnUiThread
利用Activity.runOnUiThread(Runnable)把更新ui的代碼創(chuàng)建在Runnable中,然后在需要更新 ui時,把這個Runnable對象傳給Activity.runOnUiThread(Runnable)。這樣Runnable對像就能在ui程序中被調用。如果當前線程是UI線程,那么行動是立即執(zhí)行。如果當前線程不是UI線程,操作是發(fā)布到事件隊列的UI線程。
mActivity.runOnUiThread(new Runnable() { @Override public void run() { Log.e(TAG, "開始添加設備!"); addDevice(device); } });
網(wǎng)站名稱:詳解AndroidUI更新的幾種方法-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article22/djsijc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、網(wǎng)站收錄、移動網(wǎng)站建設、服務器托管、響應式網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)