簡體   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