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 に答える