這篇“Android中的Timer計(jì)時(shí)器怎么使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Android中的Timer計(jì)時(shí)器怎么使用”文章吧。
Android考慮到線程安全問(wèn)題,不允許在線程中執(zhí)行UI線程,在Android中,有一個(gè)很有意思的類:android.os.Handler,這個(gè)可以實(shí)現(xiàn)各處線程間的消息傳遞。先看段代碼,這個(gè)實(shí)例化了一個(gè)Handler,Handler可以通過(guò)Message在多個(gè)線程通訊,我這里做的是定時(shí)recLen加1,然后以一定的格式,顯示到recTime上(UI線程上的操作)。
final Handler handler = new Handler(){ public void handleMessage(Message msg) { switch (msg.what) { case 1: recLen++; recTime.setText(GetRecTime(recLen)); break; } super.handleMessage(msg); } };
下面定實(shí)例化一個(gè)TimerTask,這個(gè)是為Timer提供一個(gè)定時(shí)執(zhí)行的內(nèi)容。我在這個(gè)方法中加的是給Handler一個(gè)發(fā)送消息功能,因這在Timer的線程中,無(wú)法直接操作UI線程。
TimerTask task = new TimerTask(){ public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } };
剩下的工作就簡(jiǎn)單多,添加一個(gè)Timer,可以讓程序運(yùn)行起來(lái)了
timer = new Timer(true); timer.schedule(task,1000, 1000); //延時(shí)1000ms后執(zhí)行,1000ms執(zhí)行一次 //timer.cancel(); //退出計(jì)時(shí)器
說(shuō)到這里,也許有些還感覺(jué)云里霧里,筆者好久沒(méi)寫(xiě)東西,也不知道怎么把問(wèn)題說(shuō)的更明白,這個(gè)再貼上筆者開(kāi)始的錯(cuò)誤寫(xiě)法,對(duì)比錯(cuò)誤寫(xiě)法,也許能讓大家更快的明白過(guò)來(lái)。
TimerTask task = new TimerTask(){ public void run() { recLen++; recTime.setText(GetRecTime(recLen));//直接在TimerTask中操作UI線程,單步調(diào)試的時(shí)候發(fā)現(xiàn),程序根本就沒(méi)執(zhí)行到這里 } }; timer = new Timer(true); timer.schedule(task,1000, 1000);
以上就是關(guān)于“Android中的Timer計(jì)時(shí)器怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:Android中的Timer計(jì)時(shí)器怎么使用-創(chuàng)新互聯(lián)
鏈接URL:http://vcdvsql.cn/article34/cscope.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、小程序開(kāi)發(fā)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容