0

我正在 android 中做一个与服务器连接并下载一些块的应用程序。现在我想让另一个进程做其他工作。这是我的代码

class RemindTask extends TimerTask {


                    public void run() {

                       flag = true;
                       System.out.println(" Hello World!");
                        Receiveeterations reeterations = new Receiveeterations();
                         int longCounteterations = reeterations.Geteterations();
                         System.out.println("longCounteterations " + longCounteterations);

                       long endTime = System.currentTimeMillis() + 10000;

                        while (System.currentTimeMillis() < endTime) {


                               } 

                        IntegerResult = 4;
                        ThroughPut1+=1;
                        ThroughPut2=0;

                        //se mia methodo! pou otan oloklirwnetai i diadikasia tha ti kanei false    
                        flag=false;   
}

 Timer timer = new Timer();
  timer.schedule(new RemindTask(), 0,20000);

   ///////////////////////////////////////////////////////////////////////////////////////////////////  


                       try {
                            Thread.sleep(10010);
                        } catch (InterruptedException e2) {
                            // TODO Auto-generated catch block
                            e2.printStackTrace();
                            }  
while (!fileparts.isEmpty()  ) { //&& !fileparts1.isEmpty() && (flag == false) 




    String[] myStringArray = new String[IntegerSpeed];

here i have more code with connectios

        }

所以我想做但我不知道的是,当定时器类被触发时,while 进程将如何停止。并且在计时器过程停止后,主要方法继续。我尝试在计时器内使用thread.sleep,但它什么也没做。

4

1 回答 1

0

你所需要的只是一个运行标志......也许这就是你的flag变量?

class RemindTask extends TimerTask {

    private boolean runnging = false;

    public void run() {
        running = true;
        [...]
        while (running && System.currentTimeMillis() < endTime) {
            // work
        }

    public void stop() {
        running = false;
        // interrupt the thread if possible
    }
}

现在您可以调用stop()正在运行的任务使其停止

于 2013-05-17T23:11:34.100 回答