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);

そのため、タイマーを更新できません。「time = 2」で2分ごとに設定すると、60に変更してもタイマーが実行されます。

問題はどこだ?

4

1 に答える 1

0

time * 60 * 1000タイマーが初期化されると、2 分に相当する初期化時間の間隔値が保存されますtime = 2。したがって、この値はタイマー オブジェクト内に格納されます。タイマーは実行時にこの値をチェックしませんが、初期化時に提供された独自のローカルに保存された間隔の値を使用します。

time = xまたはその他の値を変更しても、タイマーは内部間隔値を変更しません。したがって、後でタイマーの間隔値を変更する場合は、新しい間隔値で別のタイマー オブジェクトを開始する必要があります。

于 2012-04-19T09:23:13.543 に答える