如何设置任何功能在特定时间后重复?

时间:2014-03-23 20:06:10

标签: android

public void scheduleAtFixedRate(TimerTask任务,长延迟,长时间段)。这看起来很有希望,但我不知道如何使用它。任何帮助将不胜感激。它是在Android开发者网站上。

3 个答案:

答案 0 :(得分:1)

也许这个演示可以帮助你:

import java.util.*;
public class TimerDemo {
   public static void main(String[] args) {

      TimerTask tasknew = new TimerScheduleFixedRateDelay();
      Timer timer = new Timer();

      timer.scheduleAtFixedRate(tasknew, 500, 1000);      
   }

   public void run() {
      System.out.println("working at fixed rate delay");      
   }    
}

您需要在班级中使用名为“run”的方法,该方法将重复执行。

Source

答案 1 :(得分:0)

您可以创建一个计时器任务,并以固定的速率安排它,如下所示:

Timer timer = new Timer();
TimerTask task = new TimerTask() {

    @Override
    public void run() {
        // This method is called in a fixed interval
    }
};

timer.scheduleAtFixedRate(task, delay, period);

如果您需要与TimerTask中的用户界面进行互动,您应该这样做:

TimerTask task = new TimerTask() {

    @Override
    public void run() {
        runOnUiThread(new Runnable() {

            @Override
            public void run() {
                // Interact with UI here
            }
        });
    }
};

答案 2 :(得分:0)

public void scheduleAtFixedRate(TimerTask task,
                       long delay,
                       long period)

Android doc here

<强>参数

  • 任务 - 要安排的任务。
  • 延迟 - 执行任务前的延迟(以毫秒为单位)。
  • 时间段 - 连续任务执行之间的时间(以毫秒为单位)。

任务(TimerTask)是每隔period毫秒将永久执行的代码。 DelayTimer应该等到TimerTask开始的时间(以毫秒或日期为单位)。

你应该记得Timer会在与UI线程不同的线程中运行,所以如果你需要更新UI,你应该使用runOnUiThread等。(参见Xaver Kapeller的答案)

这可能是一个例子

TimerTask tasknew = new TimerTask()
{
    @Override
    public void run()
    {
        /* Something here */
    }
};

Timer timer = new Timer();

timer.scheduleAtFixedRate(tasknew, 500, 1000);

我注意到这里每个人都发布了一个例子,所以这只是一个带有解释的扩展。