我想在应用程序中加入根据设置好的时间自动启动的功能,不知道怎么解决,请高人指点!

解决方案 »

  1.   

    使用定时器
    import java.util.Timer;
    import java.util.TimerTask;public class Test extends TimerTask {
    private Timer timer = null; // 定时器 private static final long PERIOD = 1000; // 任务间隔时间

    private int i = 1;

    /**
     * 构造
     */
    public Test() {
    timer = new Timer(false);
    }

    /**
     * 启动定时任务
     */
    public void start(){
    timer.schedule(this, 1000, Test.PERIOD); // 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
    //timer.scheduleAtFixedRate(this, 1000, Test.PERIOD); // 安排指定的任务在指定的延迟后开始进行重复的固定速率执行。
    }

    /**
     * 结束定时任务
     */
    public void stop(){
    timer.cancel();
    } /**
     * 任务主体
     */
    public void run() {
    System.out.println(i++);
    } public static void main(String[] args) {
    Test test = new Test();
    test.start();
    }}
      

  2.   

    import java.util.Calendar;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;public class TimerTest {private final static long JOB_INTERNAL = 1000 * 10;/**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Timer timer = new Timer();
    // timer.scheduleAtFixedRate(new MyTask, );Calendar currentTime = Calendar.getInstance();
    currentTime.setTime(new Date());int currentHour = currentTime.get(Calendar.HOUR);currentTime.set(Calendar.HOUR, currentHour + 1);
    currentTime.set(Calendar.MINUTE, 0);
    currentTime.set(Calendar.SECOND, 0);
    currentTime.set(Calendar.MILLISECOND, 0);Date NextHour = currentTime.getTime();//System.out.println(NextHour);timer.scheduleAtFixedRate((TimerTask) new MyTask(), 0, JOB_INTERNAL);
    System.out.println("after timer");
    }}
    class MyTask extends TimerTask {public void run() {
    // TODO Auto-generated method stub
    System.out.println(new Date());
    }}