android+定时器+动画,Android 实现定时器的四种方式总结及实现实例_Android_脚本之家...
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)題。
- 上一篇: dsp产生正弦波 c语言,TMS320C
- 下一篇: android 打印机打印html,An