今年在项目中发现为了实现倒计时、时间段的延迟执行、时间段的轮询执行任务,都是采用Handler postDelayed(runnable,delayMillis). 等等,这有毛病?那你将实现以上功能时、代码大概如下。
1 | Handler handler = new Handler(); |
上面的代码还算好,如果是以 handleMessage
、sendEmptyMessageDelayed
再通过removeMessages
/removeCallbacks
去取消,这样的代码一大堆、追踪代码时,跳来跳去的。
这时我就想到了RxJava 的好了,难道为了这要加入RxJava?
所以, RxJava 好在哪?就好在简洁,好在那把什么复杂逻辑都只是一条链式调用。
因此把上面代码封装一个 HandlerTaskTimer 工具类,大概伪编码
1 | class HandlerTaskTimer{ |
接下来就慢慢实现功能了,条条大路通罗马,也许你有更好的实现方式,以下是我本人的简单实现十分轻巧的定时任务器。
1 | HandlerTaskTimer.getInstance().newBuilder() |
哈哈,是不是好看多了!!代码不一一列出了,参照我👇 GitHub上的Demo 实现,还有Kotlin 的实现呢