基础系列 06:Android倒计时一览
有下面几种实现方式:
- Timer和TimerTask(常规实现)
@Override
public void run() {
// do some task
Log.i("TAG","这是普通方式的TimerTask");
}
},0,3000);
-
Service中开启线程来实现定时器
private void serviceTimerTask(){ Thread mythread = new Thread(new Runnable() { @Override public void run() { while (true){ try { Thread.sleep(3000); // do other task } catch (InterruptedException e) { e.printStackTrace(); } } } }); mythread.start(); }
该定时器的生命周期和Service的生命周期一样,当Service销毁时,该定时任务结束。当退出该应用时,Service不会立即销毁,定时任务不会立即结束.
-
ScheduledExecutorService去实现
/** * 开启定时任务 */ void timerTask() { scheduleService = Executors.newSingleThreadScheduledExecutor(); Runnable runnable = new Runnable() { @Override public void run() { // to do task CLog.i(TAG, "to do task"); } }; scheduleGetScanLists = scheduleService.scheduleAtFixedRate(runnable, 0, 5, TimeUnit.SECONDS); } /** * 取消定时任务 */ void cancelTimerTask() { if (scheduleGetScanLists != null) { scheduleGetScanLists.cancel(true); scheduleService.shutdown(); } }
-
系统的AlarmManager来实现定时任务