Android計時器
阿新 • • 發佈:2017-10-29
可用 rup delayed ble clas 接口 void sched xtend
1.Handler類的postDelayed方法: Handler mHandler = new Handler(); Runnable r = new Runnable() { @Override public void run() { //do something //每隔1s循環執行run方法 mHandler.postDelayed(this, 1000); } }; 主線程中調用: mHandler.postDelayed(r, 100);//延時100毫秒 2.用handler+timer+timeTask方法: Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1){ //do something } super.handleMessage(msg); } }; Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; 主線程中調用:timer.schedule(timerTask,1000,500);//延時1s,每隔500毫秒執行一次run方法 3.Thread+handler方法: Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1){ //do something } super.handleMessage(msg); } }; class MyThread extends Thread {//這裏也可用Runnable接口實現 @Override public void run() { while (true){ try { Thread.sleep(1000);//每隔1s執行一次 Message msg = new Message(); msg.what = 1; handler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } } } 主線程中調用:new Thread(new MyThread()).start(); 二、三種延時的快捷方法: 1.Handler的postDelayed方法: new Handler().postDelayed(new Runnable() { @Override public void run() { //do something } }, 1000); //延時1s執行 2.timer + TimerTask方法: timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { //do something } },1000);//延時1s執行 3.Thread方法: new Thread(new MyThread()).start(); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000);//延時1s //do something } catch (InterruptedException e) { e.printStackTrace(); } } }).start();
Android計時器