Android——定时任务
来源:互联网 发布:linux单用户模式怎么进 编辑:程序博客网 时间:2024/05/22 13:45
Android定时任务
每隔固定时间,执行重复的规律操作。一般常用刷新UI等操作。
现在一般有一下几种方法:
1:Thread.sleep(int millisecond)
2:Timer及TimerTask相结合。
3:Handler.postDelayed(Runnable, long)
4:MyCountDownTimer(long millisInFuture, long countDownInterval)
具体实现:
1:Thread.sleep(int millisecond)
Thread.sleep是线程的暂停方法,单独可以实现延迟的操作,如果在Runable 接口实现,就可以通过线程的方法多次实现类似于定时任务的操作。
单独实现:
private void runMethod(){ //开始操作 //... //延迟一秒实现 Thread.sleep(1000); //后续操作}
定时任务实现:
1:实现Runable接口
public class MyRunable implements Runnable { @Override public void run() { // TODO Auto-generated method stub while (true) { //这里写判断方法,实现条件 try { Thread.sleep(10000);// 线程暂停10秒,单位毫秒 //定时操作,以刷新UI为例,用Handle刷新 handler.sendEmptyMessage(0x00);// 发送空消息 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
2:Handle实现
private Handler myHandler;//定义Handle全局变量myHandler = new Handler(){ @Override public void handleMessage(Message msg) { //具体实现 }
2.Timer及TimerTask相结合
1:新建Time
Timer myTimer = new Timer();
2:新建TimeTask
TimerTask myTimerTask = new TimerTask() { public synchronized void run() { }};
3:Timer .schedule实现定时任务
//TimerTask :需要执行的Task。//delay :延迟时间//period 间隔时间Timer.schedule(TimerTask task, long delay, long period); myTimer.schedule(myTimerTask,0L,180000);
3:Handler.postDelayed实现
开始需要Handle对象和Runable对象,沿用上面的。
开始启动定时器:
myHandler.postDelayed(Runnable runable, int millisecond);
取消定时器:
myHandler.removeCallbacks(Runnable runnable);
4:CountDownTimer实现
直接新建CountDownTimer(long millisInFuture, long countDownInterval)对象,会继承相应方法,
//一共执行60秒,每1秒执行一次new CountDownTimer(60000, 1000) { @Override public void onTick(long millisUntilFinished) { //每次执行任务 //... } @Override public void onFinish() { //执行结束事件 //... }}.start();
各自优缺点:
Thread.sleep()方法结合Runable,需要外部参数判断来控制结束。不能直接通过时间来控制。
Timer及TimerTask 结合的方法功能强大,可以延迟和定时。
Handler.postDelayed,可延迟,定时执行任务。
CountDownTimer只能实现,不可延迟,并且有执行完成的回调方法。
- Android——定时任务
- 定时任务——Android之Alarm机制讲解
- activiti 手动创建定时任务——衍生定时任务
- Spring定时任务——注解@Scheduled实现定时任务
- 定时任务——表达式
- 定时任务——表达式
- springmvc——定时任务
- linux Crontab—定时任务
- Android定时任务
- android 定时执行任务
- Android定时任务
- Android任务定时执行
- Android中定时任务
- android定时任务实现
- Android定时任务
- Android定时执行任务
- Android下定时任务
- android定时执行任务
- SSM项目-对SpringMVC项目进行了整合
- SparkStreaming采用直连方式(Direct Approach)获取Kafka数据的研究心得
- Android:实现一个CaseLogin数据存储
- 并行和并发的区别与联系
- react native android 高德地图原生代码编写
- Android——定时任务
- 编程知识总结
- Java并发编程CyclicBarrier的使用
- linux中scp命令使用技巧详解(传输速度)
- 将Eclipse所有的设置都设置为UTF-8格式,以方便开发使用。
- BZOJ 1968 约数研究
- mysql将一个表的字段更新到另一个表中
- 数据结构--队列
- DatePickerDialog时间选择器+MVPPlugin开发插件的使用