现在的情况是:
我定时访问一个接口,这个接口需要我传递一个ID,请问有没有什么方法能做到。Timer的schedule这个方法不行啊。有没有其它办法。
急在线等。

解决方案 »

  1.   

    这个是我从数据库里读取的。这个很方便,但我想传过去,我不知道怎么传。public class Test extends TimerTask{
    public void run() {
    System.out.println("大家好");  
    }
    }public class Time {
    Time(){
    Timer timer = new Timer();
    Test test = new Test();
    timer.schedule(test, 1000,1000);
    }  
    public static void main(String[] args) {
    Time t = new Time();
    }
    }这是我写的计时器,但我不知道怎么样把ID传给run()方法。
      

  2.   


    public class CSDN {

    static class MyTask extends TimerTask{
    private int taskID = 0;//需求
    public MyTask(int ID){
    this.taskID = ID;
    }
    @Override
    public void run() {
    System.out.println("run task with id:"+taskID+" at "+new Date());
    }
    } public static void main(String[] args){
    Timer timer = new Timer();
    TimerTask tt = new MyTask(255);
    timer.schedule(tt, 500, 500);
    try{
    Thread.sleep(5000);
    }
    catch(Exception e){

    }
    timer.cancel();
    }
    }
      

  3.   

    Test这个里面添加一个id属性, run的时候每次先设置下id.!
      

  4.   

     
    qianzhimeiying
    你的方法很不错。我想请教几个问题:
    第一:为什么用线程睡眠?
    第二:timer.cancel();为什么终止此计时器,丢弃所有当前已安排的任务。
    timer.schedule(tt, 500, 500)这个方法也执行一次啊?
      

  5.   

    timer.schedule(tt, 500, 500)表示500毫秒时执行第一次,以后每500毫秒执行一次timer最后cancel,我想让他跑足10次,那么就主线程睡眠5秒,然后再在主线程里cancel
      

  6.   

    这位哥们没明白LZ的意思,  他是说想每次执行的时候传不一样的id进去, 这个id可能是从数据库来, 那么我觉得应该在timertask中每次查数据库算 
      

  7.   

    哦,同意,
    如果乐观的话,一开始读出来作为静态变量数组id[]也可以,
    每次执行MyTask.taskID = id[index++]呗 
      

  8.   

    这样也可以, 静态的到不用,, 实例timertask的子类的时候在构造方法里面查一次数据库就好了,返回数组,每次run完了以后index++
      

  9.   

    其它在new MyTask(255);的时候传个参数进去应该就能解决。