国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
8.3.2 預(yù)約時(shí)間Handler - 51CTO.COM
預(yù)約時(shí)間Handler
http://book.51cto.com  2010-06-22 14:13  李寧  中國(guó)水利水電出版社  我要評(píng)論(0)

8.3.2  預(yù)約時(shí)間Handler

本節(jié)的例子代碼所在的工程目錄是src\ch08\ch08_handler

android.os.Handler是Android SDK中處理定時(shí)操作的核心類。通過Handler類,可以提交和處理一個(gè)Runnable對(duì)象。這個(gè)對(duì)象的run方法可以立刻執(zhí)行,也可以在指定時(shí)間后執(zhí)行(也可稱為預(yù)約執(zhí)行)。

Handler類主要可以使用如下3個(gè)方法來(lái)設(shè)置執(zhí)行Runnable對(duì)象的時(shí)間:

  1. //  立即執(zhí)行Runnable對(duì)象  
  2. public final boolean post(Runnable r);  
  3. //  在指定的時(shí)間(uptimeMillis)執(zhí)行Runnable對(duì)象  
  4. public final boolean postAtTime(Runnable r, long uptimeMillis);  
  5. //  在指定的時(shí)間間隔(delayMillis)執(zhí)行Runnable對(duì)象  
  6. public final boolean postDelayed(Runnable r, long delayMillis); 

從上面3個(gè)方法可以看出,第1個(gè)參數(shù)的類型都是Runnable,因此,在調(diào)用這3個(gè)方法之前,需要有一個(gè)實(shí)現(xiàn)Runnable接口的類,Runnable接口的代碼如下:

  1. public interface Runnable   
  2. {  
  3.     public void run();          //  線程要執(zhí)行的方法  

在Runnable接口中只有一個(gè)run方法,該方法為線程執(zhí)行方法。在本例中Main類實(shí)現(xiàn)了Runnable接口??梢允褂萌缦麓a指定在5秒后調(diào)用run方法:

  1. Handler handler = new Handler();  
  2. handler.postDelayed(this, 5000); 

如果想在5秒內(nèi)停止計(jì)時(shí),可以使用如下代碼:

  1. handler.removeCallbacks(this); 

除此之外,還可以使用postAtTime方法指定未來(lái)的某一個(gè)精確時(shí)間來(lái)執(zhí)行Runnable對(duì)象,代碼如下:

  1. Handler handler = new Handler();  
  2. handler.postAtTime(new RunToast(this)  
  3. {  
  4. }, android.os.SystemClock.uptimeMillis() + 15 * 
    1000);      //  在15秒后執(zhí)行Runnable對(duì)象 

其中RunToast是一個(gè)實(shí)現(xiàn)Runnable接口的類,代碼如下:

  1. class RunToast implements Runnable  
  2. {  
  3.     private Context context;  
  4.     public RunToast(Context context)  
  5.     {  
  6.         this.context = context;  
  7.     }  
  8.     @Override  
  9.     public void run()  
  10.     {  
  11.         Toast.makeText(context, "15秒后顯
    示Toast提示信息", Toast.LENGTH_LONG).show();  
  12.     }  

postAtTime的第2個(gè)參數(shù)表示一個(gè)精確時(shí)間的毫秒數(shù),如果從當(dāng)前時(shí)間算起,需要使用android.os.SystemClock.uptimeMillis()獲得基準(zhǔn)時(shí)間。

要注意的是,不管使用哪個(gè)方法來(lái)執(zhí)行Runnable對(duì)象,都只能運(yùn)行一次。如果想循環(huán)執(zhí)行,必須在執(zhí)行完后再次調(diào)用post、postAtTime或postDelayed方法。例如,在Main類的run方法中再次調(diào)用了postDelayed方法,代碼如下:

  1. public void run()  
  2. {  
  3.     tvCount.setText("Count:" + String.valueOf(++count));  
  4.     //  再次調(diào)用postDelayed方法,5秒后run方法仍被
    調(diào)用,然后再一次調(diào)用postDelayed方法,這樣就形成了  
  5.     //  循環(huán)調(diào)用  
  6.     handler.postDelayed(this, 5000);  

運(yùn)行本例后,單擊【開始計(jì)數(shù)】按鈕,5秒后,會(huì)在按鈕上方顯示計(jì)數(shù)信息。然后單擊【15秒后顯示Toast信息框】按鈕,過15秒后,會(huì)顯示一個(gè)Toast信息框,如圖8.17所

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
android: Handler 學(xué)習(xí)一:概念理解與運(yùn)用
【原】android 中定時(shí)器的幾種用法總結(jié)
Android Handler的使用(一)
Android開發(fā)資料
關(guān)于android中postDelayed方法的講解
Android學(xué)習(xí)筆記(三一):線程:Message和Runnable
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服