1

我尝试更新在我的 Android 应用程序中预先设置的计时器。

定时器代码:

timer.purge();

Data.Log.i("Next update : "+time * 60 * 1000);

timer.scheduleAtFixedRate(new TimerTask() 
{
    @Override
    public void run() 
    {
        handler.post(new Runnable() {
            @Override
            public void run() {
                wp.StartUpdate();
            }
        });
    }
}, 0, time * 60 * 1000);

所以我不能更新我的计时器。当我每 2 分钟将其设置为“time = 2”时,即使我将其更改为 60,计时器也会执行。

哪里有问题?

4

1 回答 1

0

一旦定时器被初始化,它就会存储初始化时间的间隔值,time * 60 * 1000如果 ,它等于 2 分钟time = 2。所以这个值存储在计时器对象中。计时器在运行时不检查这个值,而是使用它自己在初始化时提供的本地存储的间隔值。

如果您更改time = x或任何其他值,计时器将不会更改其内部间隔值。因此,如果您想稍后更改计时器的间隔值,您必须使用新的间隔值启动另一个计时器对象。

于 2012-04-19T09:23:13.543 回答