2013-12-13 4 views
1

Я установил TimerTask UpdateTask, но он запускается только один раз при запуске моей программы. Почему он не продолжает срабатывать?TimerTask только триггеры один раз

Некоторые из методов здесь находятся в других классах, если они вам нужны, не стесняйтесь, дайте мне знать.

import java.awt.Graphics; 
import java.util.Timer; 
import java.util.TimerTask; 


public class graphpanel extends variables 
{ 
Timer timer = new Timer(); 

int ypoint; 
int barheight; 

int height = getHeight(); 
int width = getWidth(); 
int bars = (int)getLife() - (int)getAge(); 
int xpoint = 0; 
int barwidth = 20; 

public graphpanel() 
{ 
    timer.schedule(new UpdateTask(), 10); 
} 


public void paintComponent (Graphics g) 
{ 
    super.paintComponent(g); 

    for (int i = 0; i < bars; i++) 
    { 
     barheight = (int) getTime(i)/100; 
     ypoint = height/2 - barheight; 
     g.drawRect(xpoint, ypoint, barwidth, barheight); 
     g.drawString("hey", 10*i, 40); 
    } 
} 

class UpdateTask extends TimerTask 
{ 
    public void run() 
    { 
     bars = (int)getLife() - (int)getAge(); 
     System.out.print("TimerTask detected"); 
     repaint(); 
    } 
} 

}

+0

Будет ли диспетчер аварийной сигнализации более уместным? http://stackoverflow.com/questions/8679367/timer-task-vs-alarm-manager-usage-in-android-service – Submersed

ответ

2

Timer.schedule(TimerTask, long) только назначает задачу для одноразового выполнения.

Использование

timer.scheduleAtFixedRate(new UpdateTask(), 10, 10); 

для повторяющихся вызовов вашего TimerTask.

Дополнительная информация: JavaDoc

Смежные вопросы