定时任务

本文介绍了如何使用cron表达式来配置和管理定时任务,详细解释了cron表达式的语法,并通过实例展示了如何设置不同周期的任务。同时,讨论了在分布式环境中如何保证定时任务的准确性和一致性。
定时任务有三种:

1.TimerTask
2.AlarmManager
3.CountDownTimer


1.TimerTask:
TimerTask task= new TimerTask() {
     @Override
     public void run() {
        count++;
        Log.i("MainActivity",count + "");
     }
};

//time为Date类型:在指定时间执行一次。 
timer.schedule(task, time); 
//firstTime为Date类型,period为long,表示从firstTime时刻开始,每隔period毫秒执行一次。 
timer.schedule(task, firstTime,period);   
//delay 为long类型:从现在起过delay毫秒执行一次。 
timer.schedule(task, delay);  
//delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次。 
timer.schedule(task, delay,period); 

2.AlarmManager
Intent intent = newIntent(ReadLogService.this,TestBroadcast.class);
PendingIntent pd =PendingIntent.getBroadcast(getApplicationContext(), 0, intent,PendingIntent.FLAG_ONE_SHOT);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
long triggerTime =SystemClock.elapsedRealtime() + 5*1000;
//triggerTime毫秒后执行pd
am.set(AlarmManager.ELAPSED_REALTIME,triggerTime, pd);

3.CountDownTimer
//每100毫秒执行一次onTick(),10000毫秒后执行onFinish();
CountDownTimer cdt = new CountDownTimer(10000, 100) {
  @Override
  public void onTick(long millisUntilFinished) {
    tv_hello.setText(millisUntilFinished + "");
  }
  @Override
  public void onFinish() {
      
  }
};
  
cdt.start();




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值