繁体   English   中英

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

[英]How can i set any function to repeat after specific amount of time?

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

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

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

您需要在类中有一个称为“运行”的方法,该方法将被重复执行。

来源

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

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的UI进行交互,则应按以下步骤进行操作:

TimerTask task = new TimerTask() {

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

            @Override
            public void run() {
                // Interact with UI here
            }
        });
    }
};
public void scheduleAtFixedRate(TimerTask task,
                       long delay,
                       long period)

Android文档在这里

参数

  • 任务-要计划的任务。
  • delay-执行任务之前的延迟(以毫秒为单位)。
  • period-连续执行任务之间的时间(以毫秒为单位)。

任务( TimerTask )是将在每个period毫秒内永久执行的代码。 DelayTimer应等待直到TimerTask启动的时间(以ms或Date为单位)。

您应该记住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);

我注意到这里每个人都只是发布了一个示例,因此它只是带有解释的扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM