日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android+定时器+动画,Android 实现定时器的四种方式总结及实现实例_Android_脚本之家...

發(fā)布時(shí)間:2024/4/19 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android+定时器+动画,Android 实现定时器的四种方式总结及实现实例_Android_脚本之家... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android中實(shí)現(xiàn)定時(shí)器的四種方式

第一種方式利用Timer和TimerTask

1、繼承關(guān)系

java.util.Timer

基本方法

schedule

例如:

timer.schedule(task, delay,period);

//delay為long,period為long:從現(xiàn)在起過(guò)delay毫秒以后,每隔period毫秒執(zhí)行一次。

schedule方法有三個(gè)參數(shù)

第一個(gè)參數(shù)就是TimerTask類(lèi)型的對(duì)象,我們實(shí)現(xiàn)TimerTask的run()方法就是要周期執(zhí)行的一個(gè)任務(wù);

第二個(gè)參數(shù)有兩種類(lèi)型,第一種是long類(lèi)型,表示多長(zhǎng)時(shí)間后開(kāi)始執(zhí)行,另一種是Date類(lèi)型,表示從那個(gè)時(shí)間后開(kāi)始執(zhí)行;

第三個(gè)參數(shù)就是執(zhí)行的周期,為long類(lèi)型。

2、

TimerTask task= new TimerTask() {

@Override

public void run() {

count++;

Log.i("MainActivity",count + "");

}

};

//以下是幾種調(diào)度task的方法:

//time為Date類(lèi)型:在指定時(shí)間執(zhí)行一次。

timer.schedule(task, time);

//firstTime為Date類(lèi)型,period為long,表示從firstTime時(shí)刻開(kāi)始,每隔period毫秒執(zhí)行一次。

timer.schedule(task, firstTime,period);

//delay 為long類(lèi)型:從現(xiàn)在起過(guò)delay毫秒執(zhí)行一次。

timer.schedule(task, delay);

//delay為long,period為long:從現(xiàn)在起過(guò)delay毫秒以后,每隔period毫秒執(zhí)行一次。

timer.schedule(task, delay,period);

注意:task應(yīng)該在onDestory()中取消掉,否則可能發(fā)生崩潰

3、用TimerTask定時(shí)進(jìn)行某些操作的APP,即使退出了,TimerTask中依然會(huì)運(yùn)行一會(huì),但是不能長(zhǎng)時(shí)間運(yùn)行

第二種方式 使用CountDownTimer

1、Demo

CountDownTimer cdt = new CountDownTimer(10000, 100) {

@Override

public void onTick(long millisUntilFinished) {

tv_hello.setText(millisUntilFinished + "");

}

@Override

public void onFinish() {

}

};

cdt.start();

2、上面的例子是

每隔100毫秒執(zhí)行onTick中的方法一次

直到執(zhí)行完10000/100次為止,最后會(huì)執(zhí)行onFinish()中的方法

第三種方式 AlarmManager

demo:

Intent intent2 = newIntent(ReadLogService.this,TestBroadcast.class);

PendingIntent pd =PendingIntent.getBroadcast(getApplicationContext(), 0, intent2,PendingIntent.FLAG_ONE_SHOT);

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

long triggerTime =SystemClock.elapsedRealtime() + 5*1000;

am.set(AlarmManager.ELAPSED_REALTIME,triggerTime, pd);

第四種方式 AlarmManager

handler.sendEmptyMessageDelayed(0, 4000);//啟動(dòng)handler,實(shí)現(xiàn)4秒定時(shí)循環(huán)執(zhí)行

private Handler handler = new Handler(){

public voidhandleMessage(android.os.Message msg) {

if(isChange){

//邏輯處理

handler.sendEmptyMessageDelayed(0,4000);//4秒后再次執(zhí)行

}

}

};

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

總結(jié)

以上是生活随笔為你收集整理的android+定时器+动画,Android 实现定时器的四种方式总结及实现实例_Android_脚本之家...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。