1 倒计时方法介绍
(1)handler+postDelayed() 方式
(2)handler&Timer&TimerTask 方式
(3)ScheduledExecutorService + handler 方式
(4)RxJava 方式(推荐)
(5)CountDownTimer 方式(推荐)
1.1 handler+postDelayed() 方式
(1)自定义的 handler
几种方式都会用到的 handler 放前面,避免 handler 引起的内存泄露,使用 handler 时建议按如下方式让 handler 持有一个当前 Activity 的弱引用:
private LooperHandler mHandler = new LooperHandler(this);
/**
* handler 持有当前Activity的弱引用防止内存泄露
*/
private static class LooperHandler extends Handler {
WeakReference mWeakReference;
LooperHandler(LoopersActivity activity) {
mWeakReference = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
LoopersActivity loopersActivity = mWeakReference.get();