国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android編程中Handler原理及用法實(shí)例分析

2020-04-11 11:04:50
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Android編程中Handler用法。分享給大家供大家參考,具體如下:

在Android的UI開發(fā)中,我們經(jīng)常會使用Handler來控制主UI程序的界面變化。有關(guān)Handler的作用,我們總結(jié)為:與其他線程協(xié)同工作,接收其他線程的消息并通過接收到的消息更新主UI線程的內(nèi)容

我們假設(shè)在一個UI界面上面,有一個按鈕,當(dāng)點(diǎn)擊這個按鈕的時候,會進(jìn)行網(wǎng)絡(luò)連接,并把網(wǎng)絡(luò)上的一個字符串拿下來顯示到界面上的一個 TextView上面,這時就出現(xiàn)了一個問題,如果這個網(wǎng)絡(luò)連接的延遲過大,可能是10秒鐘甚至更長,那我們的界面將處于一直假死狀態(tài),而如果這段時間超 過5秒鐘的話,程序會出現(xiàn)異常。

這時我們會想到使用線程來完成以上工作,即當(dāng)按鈕被按下的時候新開啟一個線程來完成網(wǎng)絡(luò)連接工作,并把得到的結(jié)果更新到UI上面。但是,這時候又會 出現(xiàn)另一個問題,在Android中,主線程是非線程安全的,也就是說UI的更新只能在本線程中完成,其他線程無法直接對主線程進(jìn)行操作。

為了解決以上問題,Android設(shè)計了Handler機(jī)制,由Handler來負(fù)責(zé)與子線程進(jìn)行通訊,從而讓子線程與主線程之間建立起協(xié)作的橋梁,使Android的UI更新的問題得到完美的解決。接下來ATAAW.COM舉例來詮釋Handler的基本使用方法。

A、Handler的工作原理

一般情況下,在主線程中我們綁定了Handler,并在事件觸發(fā)上面創(chuàng)建新的線程用于完成某些耗時的操作,當(dāng)子線程中的工作完成之后,會對Handler發(fā)送一個完成的信號,而Handler接收到信號后,就進(jìn)行主UI界面的更新操作。

B、Handler與子線程協(xié)作實(shí)例

1、創(chuàng)建Handler實(shí)現(xiàn)類,在主UI所在類中的內(nèi)部類

class MyHandler extends Handler {public MyHandler() {}public MyHandler(Looper L) {super(L);}// 重寫handleMessage方法,接受數(shù)據(jù)并更新UI@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);//此處根據(jù)msg內(nèi)容進(jìn)行UI操作  }}

2、子線程的實(shí)現(xiàn)

class MyThread implements Runnable {public void run() {    Message msg = new Message();    Bundle b = new Bundle();    b.putString("cmd", "update");    msg.setData(b);    MainActivity.this.myHandler.sendMessage(msg);//通知Handler更新UI  }}

通過以上的兩個實(shí)現(xiàn),我們只需要在MainActivity中聲明MyHandler實(shí)例對象就可以完成線程之間的通訊和界面的更新操作。

復(fù)制代碼 代碼如下:
MyHandler myHandler = new MyHandler();

希望本文所述對大家Android程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 监利县| 吴忠市| 宁夏| 云龙县| 托克逊县| 漳浦县| 讷河市| 苗栗县| 历史| 渭南市| 皋兰县| 万盛区| 金沙县| 兴义市| 东阳市| 方正县| 尼木县| 纳雍县| 明水县| 荣昌县| 玛纳斯县| 灌南县| 十堰市| 定结县| 天气| 邳州市| 广德县| 都兰县| 英吉沙县| 吉木乃县| 涪陵区| 保德县| 吴旗县| 军事| 保靖县| 饶河县| 浦江县| 新沂市| 呼玛县| 突泉县| 禄劝|