【发布时间】:2019-11-28 21:15:50
【问题描述】:
我想让 8 个方块周期性地在红/黑之间改变颜色。
我使用timer.schedule 完成此操作,周期时间以毫秒为单位,它可以工作
但后来我意识到我需要在这些转换之间使用一小段时间(例如纳秒)。
为了实现这一点,我编写了以下代码:
timerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run(){
//CODE OF THE TASK.
}
});
}
};
//To make schedule this task in 5 nanoseconds I use this!
exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(timerTask, 0, 5, TimeUnit.NANOSECONDS);
但是当我运行这个时,UI 没有更新(似乎卡住了),但是在 logcat 中,所有日志都打印得非常快。如何实现以 x 纳秒的周期定期执行任务?
【问题讨论】:
-
如果颜色在纳秒内变化,人眼不应该是看不见的吗?
-
@ReazMurshed 我会这么认为。我需要使周期小于 1 毫秒。
-
如果你想要少一点,那么你可能不会考虑
NANOSECONDS,因为它少了很多。实际上,中间还有另一个TimeUnit.MICROSECONDS。
标签: android scheduled-tasks periodic-task