在网上看了很多类似的文章,比较乱,自己总结了一下,在开发中,常见的执行定时任务的方法有以下几种,
很简单的描述,有什么不懂可以留言,下面来介绍一下这几种常见的方法:
1.直接在线程中睡觉的方法,这个比较常见,操作也方便
class MThread implements Runnable { @Override public void run() { // TODO Auto-generated method stub try { do { Thread.sleep(1000); count -= 1; if (count == 0) { // time=Calendar.getInstance().getTimeInMillis()/1000+myDb.getDiffTime(); count = 30; } pb.setProgress(count); Message msg = new Message(); msg.what = 1111; mHandler.sendMessage(msg); } while (!Thread.interrupted()); } catch (Exception e) { e.printStackTrace(); } } }
2.直接使用SystemClock.sleep(1000);进行睡眠,需要注意的是这个会阻塞主线程
SystemClock.sleep(1000);
3.直接使用TimerTask进行定时
这个方法也经常使用,比如开启的splash页面中,常用timertask进行时间以及动画的过渡。
Timer timer = new Timer(); TimerTask MyTask = new TimerTask() { @Override public void run() { } }; timer.schedule(MyTask, 1000);
4.常用的随机码生成,举个6位数生成的例子吧,这个是生成6位随机数
int numcode = (int) ((Math.random() * 9 + 1) * 100000); String smstext = "你本次生成的6位安全验证码为:" + numcode;