如何在另一个运行java android时停止进程

时间:2013-05-17 22:23:34

标签: java android multithreading timer pthreads

我在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

        }

所以我想做什么,我不知道,是什么时候触发计时器类,而进程将停止。并且在计时器停止过程之后,main方法继续。 我在计时器内尝试thread.sleep,但它没有做任何事情。

1 个答案:

答案 0 :(得分: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()以使其停止