如何强制计时器立即启动

时间:2016-01-12 13:10:15

标签: java android timer timertask

我正在使用一个应该每12秒发出一次警告的计时器。如下面的代码所示,我将延迟设置为0,以便计时器立即启动,但是 运行时间,下面发布的计时器不会立即启动它等待设置为延迟的时间段我将延迟设置为0

换句话说,下面的计时器应该等待0秒作为延迟,并且每12秒重复一次,但会发生的是,它在初始执行时等待12秒并且每12秒重复一次

任何合理的解释为什么会发生这种情况

mVelWarningRule1Timer.scheduleAtFixedRate(
                     new SpeakOut(
                         getApplicationContext(), 
                         getApplicationContext()
                            .getResources()
                            .getString(R.string.rule_velocity_1)),
                         0,
                         getApplicationContext()
                            .getResources()
                            .getInteger(R.integer.int_assistWarning_interval)
                      );

1 个答案:

答案 0 :(得分:0)

    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new RemindTask(), 0, 12000);

第一个是内部类。第二个参数是延迟。第三个给你间隔。

private class RemindTask extends TimerTask {
    @Override
    public void run() {
        try
        {
            getActivity().runOnUiThread(new Runnable() {
                public void run() {
                    if (page > adapter.getCount()) {
                        page = 0;
                    } else {
                        viewPager.setCurrentItem(page++, true);
                    }
                }
            });
        }
        catch(Exception e)
        {
            timer.cancel();
        }
    }
}

这会使图片旋转木马每12秒更换一次