java – 我可以在不同的时间间隔运行计时器吗?

其实我想问我可以从数据库给定时器延迟的价值吗?

    Timer timer = new Timer();
    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                  // whatever
                    }
                }
            });
        }
    };
    timer.schedule(timerTask,2000,**myDelay**); //here at my delay

在myDelay,我可以通过数据库给出不同的值吗?或者它必须修复?

最佳答案 如果你要用不同的值一直改变时间,我建议你使用

schedule(TimerTask task, long time)

每次从DB获得新的时间时,只需创建一个新的Timer()

time = getNewTimeFromDB();
createNewTask(time);
....
private void createNewTask(long time) {
    Timer timer=new Timer();
    TimerTask timerTask=new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    // whatever
                }
            });
        }
    };
    timer.schedule(timerTask,time);
}

这样做的好处是你不必每次都取消计时器,因为它只能运行一次.

点赞