自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android計(jì)時(shí)器正確應(yīng)用方式解析

移動(dòng)開(kāi)發(fā) Android
Android計(jì)時(shí)器看似簡(jiǎn)單,但是真正操作起來(lái)并不是很容易。今天大家就可以通過(guò)這里介紹的內(nèi)容對(duì)這一應(yīng)用技巧有一個(gè)充分的掌握。

目前許多大型廠商都紛紛將目光轉(zhuǎn)向了智能手機(jī),在手機(jī)領(lǐng)域展開(kāi)了一場(chǎng)激烈的競(jìng)爭(zhēng)。由谷歌推出的Android手機(jī)操作系統(tǒng)就是一其中一個(gè)競(jìng)爭(zhēng)對(duì)手。在這里我們可以了解到Android計(jì)時(shí)器的相關(guān)應(yīng)用。

昨天晚上在寫(xiě)一個(gè)Android計(jì)時(shí)器,開(kāi)始認(rèn)為很容易,用Java一般寫(xiě)法,結(jié)果發(fā)現(xiàn)計(jì)時(shí)器根本不能運(yùn)行,但卻不報(bào)任何錯(cuò)誤,當(dāng)時(shí)就呆在那了,不知道該怎么辦了,后來(lái)在網(wǎng)上查了一下,Android考慮到線程安全問(wèn)題,不允許在線程中執(zhí)行UI線程(我的現(xiàn)在所知道,還有其他的限制發(fā)現(xiàn)中),在Android中,有一個(gè)很有意思的類:android.os.Handler,這個(gè)可以實(shí)現(xiàn)各處線程間的消息傳遞。

先看段代碼,這個(gè)實(shí)例化了一個(gè)Handler,Handler可以通過(guò)Message在多個(gè)線程通訊,我這里做的是定時(shí)recLen加1,然后以一定的格式,顯示到recTime上(UI線程上的操作)。

  1. final Handler handler = new Handler(){   
  2. public void handleMessage(Message msg) {   
  3. switch (msg.what) {   
  4. case 1:   
  5. recLen++;  
  6. recTime.setText(GetRecTime(recLen));  
  7. break;   
  8. }   
  9. super.handleMessage(msg);   
  10. }   
  11. };  

下面定實(shí)例化一個(gè)TimerTask,這個(gè)是為T(mén)imer提供一個(gè)定時(shí)執(zhí)行的內(nèi)容。我在這個(gè)方法中加的是給Handler一個(gè)發(fā)送消息功能,因這在Timer的線程中,無(wú)法直接操作UI線程。

  1. TimerTask task = new TimerTask(){   
  2. public void run() {   
  3. Message message = new Message();   
  4. message.what = 1;   
  5. handler.sendMessage(message);   
  6. }   
  7. };  

剩下的工作就簡(jiǎn)單多,添加一個(gè)Timer,可以讓程序運(yùn)行起來(lái)了

  1. timer = new Timer(true);  
  2. timer.schedule(task,1000, 1000);   
  3. //延時(shí)1000ms后執(zhí)行,1000ms執(zhí)行一次  
  4. //timer.cancel(); //退出Android計(jì)時(shí)器

說(shuō)到這里,也許有些還感覺(jué)云里霧里,好久沒(méi)寫(xiě)東西,也不知道怎么把問(wèn)題說(shuō)的更明白,這個(gè)再貼上我開(kāi)始的錯(cuò)誤寫(xiě)法,對(duì)比錯(cuò)誤寫(xiě)法,也許能讓大家更快的明白過(guò)來(lái)

Android計(jì)時(shí)器錯(cuò)誤寫(xiě)法

  1. TimerTask task = new TimerTask(){   
  2. public void run() {   
  3. recLen++;  
  4. recTime.setText(GetRecTime(recLen));  
  5. //直接在TimerTask中操作UI線程,單步調(diào)試的時(shí)候發(fā)現(xiàn),程序根本就沒(méi)執(zhí)行到這里  
  6. }   
  7. };   
  8. timer = new Timer(true);  
  9. timer.schedule(task,1000, 1000);  

Android計(jì)時(shí)器的相關(guān)應(yīng)用方法就為大家介紹到這里。

【編輯推薦】

  1. Android HttpURLConnection應(yīng)用技巧分享
  2. Android系統(tǒng)應(yīng)用程序基本概念解讀
  3. Android Spinner使用技巧講解
  4. Android復(fù)選框源碼解析
  5. Android系統(tǒng)架構(gòu)基本模式解析
責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2010-03-03 17:58:16

Python同步隊(duì)列

2010-02-22 14:09:08

WCF Dispose

2010-02-05 14:12:46

C++聲明放置

2010-03-04 13:30:11

Python file

2011-05-31 16:50:35

Android 線程

2010-01-25 09:28:54

Android模擬器

2021-07-02 16:13:01

區(qū)塊鏈金融數(shù)據(jù)庫(kù)

2010-03-05 15:01:29

Python解析XML

2010-03-03 17:33:52

Python讀取XML

2010-03-04 14:51:21

Python Conf

2009-12-07 14:38:14

PHP foreach

2010-05-28 15:16:40

MySQL 資源

2010-07-05 14:34:19

2011-09-08 14:01:01

Android Wid實(shí)例

2010-02-22 10:42:12

WCF Stream

2013-05-23 16:01:47

Android開(kāi)發(fā)移動(dòng)開(kāi)發(fā)Chronometer

2010-01-05 15:00:30

.NET Framew

2010-05-25 18:01:35

linux MySQL

2010-05-28 19:20:36

MySQL mysql

2012-05-08 13:58:37

SharePoint
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)