android中的定时器
Thread的sleep(long)方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); new Thread(runnable).start(); } private int looper = 0; Runnable runnable = new Runnable() { @Override public void run() { while (true){ try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } Log.d("ThreadAct", ++looper + ""); } } }; @Override protected void onDestroy() { super.onDestroy(); runnable = null; }
Handler的postDelayed(Runnable, long)方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); Log.d("HandlerAct","Thread.name:"+Thread.currentThread().getName()); runHandler.postDelayed(runnable,2000); } private Handler runHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; private int looper = 0; Runnable runnable = new Runnable(){ @Override public void run() { //TODO something Log.d("HandlerAct",++looper+""); Log.d("HandlerAct","Thread.name:"+Thread.currentThread().getName()); runHandler.postDelayed(this,2000); } }; @Override protected void onDestroy() { super.onDestroy(); runHandler.removeCallbacks(runnable);//停止 }
Timer与TimerTask结合的方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); timer.schedule(task,1000,2000); } private int looper = 0; Timer timer = new Timer( ); TimerTask task = new TimerTask( ) { public void run ( ) { timerHandler.sendEmptyMessage(0); } }; Handler timerHandler = new Handler( ) { public void handleMessage(Message msg) { super.handleMessage(msg); Log.d("TimerAct",++looper+""); } }; protected void onDestroy ( ) { if (timer != null) { timer.cancel( ); timer = null; } super.onDestroy( ); }
使用schedule
方法,1秒后调用此task
对象,然后每2秒执行一次
timer.schedule(task,1000,2000);
Android中的定时器Timer、AlarmManager、CountDownTimer的使用 - Mirhunana - 博客频道 - CSDN.NET
ScheduledThreadPoolExecutor
利用ScheduledThreadPoolExecutor定时执行任务:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); threadPool.scheduleAtFixedRate(task,0,2, TimeUnit.SECONDS); } private ScheduledThreadPoolExecutor threadPool = new ScheduledThreadPoolExecutor(5); private int looper = 0; TimerTask task = new TimerTask( ) { public void run ( ) { timerHandler.sendEmptyMessage(0); } }; final Handler timerHandler = new Handler( ) { public void handleMessage(Message msg) { super.handleMessage(msg); Log.d("ExecutorAct",++looper+""); } };
Java ScheduledThreadPoolExecutor延迟或周期性执行任务 - ImportNew
http://www.importnew.com/7276.html
Android定时器,推荐ScheduledThreadPoolExecutor - 山不在高,有金则名 - 博客频道 - CSDN.NET
http://blog.csdn.net/gaojinshan/article/details/17956055
利用ScheduledThreadPoolExecutor定时执行任务 - 幻年,时光。 - 博客频道 - CSDN.NET
http://blog.csdn.net/kazeik/article/details/8545049
深度解析Java8 – ScheduledThreadPoolExecutor源码解析 - 为程序员服务
http://ju.outofmemory.cn/entry/99456
ScheduledThreadPoolExecutor实现原理 - - ITeye技术网站
http://freish.iteye.com/blog/1766960
Java Timer和ScheduledThreadPoolExecutor体会和发现的问题明明如月新浪博客
http://blog.sina.com.cn/s/blog_9707fac30101i5n5.html
CountDownTimer倒计时
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); timer.start(); } private int looper = 0; private CountDownTimer timer = new CountDownTimer(10000, 1000) { @Override public void onTick(long millisUntilFinished) { Log.d("CountdownTimerAct",++looper+""); } @Override public void onFinish() { Log.d("CountdownTimerAct","onFinish"); Log.d("CountdownTimerAct",++looper+""); } };
Android CountDownTimer倒计时器的使用 - 拿铁不懂绿茶 - 博客频道 - CSDN.NET
使用CountDownTimer类轻松实现倒计时功能Android脚本之家
更多相关文章
- android SQLiteDatabase源码解析
- Android中利用Intent传递数据到另一个页面
- android 调用 Menu 两种方法
- android更新UI的几种方法
- android kernel 初始化 2
- android TelephonyManager类的方法
- Android方法的传递值及其改变
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用