最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Android計(jì)時(shí)器和倒計(jì)時(shí)-創(chuàng)新互聯(lián)
  • 成都創(chuàng)新互聯(lián)公司專(zhuān)注于臨淄網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供臨淄營(yíng)銷(xiāo)型網(wǎng)站建設(shè),臨淄網(wǎng)站制作、臨淄網(wǎng)頁(yè)設(shè)計(jì)、臨淄網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造臨淄網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供臨淄網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
  • Android計(jì)時(shí)器和倒計(jì)時(shí)

  • 計(jì)時(shí)器

  1. 兩個(gè)核心類(lèi) Timer 和 TimerTask

1) Timer核心方法

Java代碼

  1. //Schedules the specified task for execution after the specified delay.

  2. void schedule(TimerTask task, long delay)

  3. //Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay.

  4. void schedule(TimerTask task, long delay, long period)

第一個(gè)方法只執(zhí)行一次;

第二個(gè)方式每隔period執(zhí)行一次,delay表示每次執(zhí)行的延時(shí)時(shí)間,其實(shí)主要表現(xiàn)在第一次的延時(shí)效果,比如delay設(shè)置為0,那么立馬執(zhí)行task內(nèi)容,如果設(shè)置為1000,那么第一次執(zhí)行task會(huì)有一秒的延時(shí)效果。

2) TimerTask用于繼承(或者直接定義并初始化匿名類(lèi)),并重寫(xiě)run方法,定義自己的業(yè)務(wù)邏輯。

3) 手動(dòng)結(jié)束定時(shí)器,

Timer和TimerTask都有cancel方法,而且最好同時(shí)調(diào)用;

如果已經(jīng)cancel,下次必須創(chuàng)建新的Timer才能schedule。

4) 如果你在當(dāng)前的activity中schedule了一個(gè)task,但是沒(méi)有等到task結(jié)束,就按Back鍵finish了當(dāng)前的activity,Timer和TimerTask并不會(huì)自動(dòng)cancel或者銷(xiāo)毀,它還會(huì)在后臺(tái)運(yùn)行,此時(shí)如果你在task的某個(gè)階段要調(diào)起一個(gè)控件(比如AlertDialog),而該控制依賴被銷(xiāo)毀的activity,那么將會(huì)引發(fā)crash。

5) 例如對(duì)進(jìn)度條實(shí)現(xiàn)每一秒遞增的效果(主要代碼)

Java代碼  Android計(jì)時(shí)器和倒計(jì)時(shí)

  1. //總時(shí)長(zhǎng)

  2. private static final long TOTAL_QUERY_MINUTES = 50;

  3. //比如每5秒去查詢數(shù)據(jù)庫(kù)

  4. private static final long QUERY_INTERVAL = 5 *1000;

  5. private static final int TIMER_SCHEDULE_CODE = 1;

  6. int timePassed=0;

  7. QueryTimerTask queryTask;

  8. private Timer timer;

  9. //顯示定時(shí)器的效果

  10. ProgressBar statusBar;

  11. private Handler mHandler= new Handler(new Handler.Callback() {

  12.     @Override

  13.     public boolean handleMessage(Message msg) {

  14.         switch (msg.what) {

  15.             case TIMER_SCHEDULE_CODE:

  16.                 statusBar.setProgress(timePassed);

  17.                 //Log.w(TAG, "timePassed : " + timePassed + " -- TOTAL_QUERY_MINUTES : " + TOTAL_QUERY_MINUTES);

  18.                 if (timePassed>=TOTAL_QUERY_MINUTES){

  19.                     if (timer != null)

  20.                         timer.cancel();

  21.                     if (queryTask != null)

  22.                         queryTask.cancel();

  23.                     new AlertDialog.Builder(YourActivity.this).

  24.                             setTitle("超時(shí)通知").setMessage("已超時(shí),是否繼續(xù)等待?")

  25.                         .setPositiveButton("繼續(xù)等待", new DialogInterface.OnClickListener() {

  26.                             public void onClick(DialogInterface dialog, int which) {

  27.                                 reSchedule();

  28.                             }

  29.                         })

  30.                         .setNegativeButton("取消任務(wù)", new DialogInterface.OnClickListener() {

  31.                             public void onClick(DialogInterface dialog, int which) {

  32.                                 //cancelTask();

  33.                             }

  34.                         }).show();

  35.                 break;

  36.             //....

  37.         }

  38.         return true;

  39.     }

  40. });

  41. void reSchedule() {

  42.     timePassed = 0;

  43.     if (timer != null) {

  44.         timer.cancel();

  45.     }

  46.     if (queryTask != null) {

  47.         queryTask.cancel();

  48.     }

  49.     timer = new Timer();

  50.     queryTask = new QueryTimerTask();

  51.     //每一秒執(zhí)行一次,第一次有延時(shí)一秒的效果

  52.     timer.schedule(queryTask, 1000, 1000);

  53. }

  54. //自定義task

  55. class QueryTimerTask extends TimerTask {

  56.     @Override

  57.     public void run() {

  58.         //比如每過(guò)QUERY_INTERVAL去查詢信息

  59.         if ((timePassed * 1000) % QUERY_INTERVAL == 0) {

  60.             //query();

  61.         }

  62.         timePassed++;

  63.         //通知handler去改變statusBar

  64.         Message message = mHandler.obtainMessage();

  65.         message.what = TIMER_SCHEDULE_CODE;

  66.         mHandler.sendMessage(message);

  67.     }

  68. }

 2. 倒計(jì)時(shí)

其實(shí)也可以用上面的方法實(shí)現(xiàn),

安卓額外提供了CountdownTimer類(lèi),以后再補(bǔ)充

文章來(lái)源:http://itlanbao.com/preview.aspx#1,0

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文名稱(chēng):Android計(jì)時(shí)器和倒計(jì)時(shí)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://fisionsoft.com.cn/article/dsdcjp.html