簡體   English   中英

使用timer.schedule重復方法

[英]Using timer.schedule for repeating a method

我正在嘗試制作一個類似計數器的應用程序。 但是,我正在嘗試賺取某種收入,以便應用程序能夠自行計算。

class Income extends TimerTask {

    @Override
    public void run() {
        CowCount = CowCount + income;
    }

}

Timer timer = new Timer();
timer.schedule(new Income(), 1000);

到目前為止是這樣。 但是,它不起作用。 在timer.schedule中,中間的點被視為錯誤,在同一行的“收入”之后的第一個括號和第二個括號被視為錯誤。 在這個問題上 ,看來我在做正確的事。

最后一件事:即使我開始運行其他方法,此計時器也將繼續運行嗎? 如果停止,我想我需要尋找另一種方法。

編輯:這些是錯誤:1.令牌上的語法錯誤,構造放置不正確2.令牌上的語法錯誤((,, =預期)3.令牌上的語法錯誤)),無效參數列表。

第一個錯誤出現在計時器與時間表之間的點上,第二個錯誤出現在時間表之后的括號中。 第三個錯誤是在最后一行“收入”之后的第二個括號中。

確保您使用的是java.util.Timer類。 而且,如果您這樣做了,那么就會告訴我:

Timer timer = new Timer();
timer.schedule(new Income(), 1000);

這些代碼不在任何類上下文中。 您需要在類成員函數內部或構造函數內部執行此操作。 例如:

public class checkTimer extends TimerTask{

   int counter = 0;


   public  void startTimer()
   {
     Timer timer = new Timer();
     timer.schedule(this, 500, 500);
   }


    @Override
    public void run() {
       counter++;
        System.out.println(counter); // use logCat to see
    }
}

最后一件事:即使我開始運行其他方法,此計時器也將繼續運行嗎? 如果停止,我想我需要尋找另一種方法。

計時器將運行,但是您正在使用timer.schedule(new Income(), 1000); 這實際上是schedule(TimerTask, delay) 在定義的延遲時間后它將運行一次。 對於重復的任務,您將需要使用-

schedule (TimerTask task, long delay, long period)

功能。 其中period是后續執行之間的時間間隔(以毫秒為單位)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM