2016-12-31 15 views
1

私がやっていることは、15秒の遅延とループ内で、私はバレーの要求を実行したいです。ループは動作していますが、遅延はありません。whileループでRequestQueを使用する

これは私のコードです:(CLIENT2がボレーリクエストメソッドである)

new Thread(new Runnable() {@Override 
    public void run() { 
     while (h < taxiidlist.size() && assined == false && requested == true) { 
      handler2.post(new Runnable() {@Override 
       public void run() { 

        client2(user.id, taxiidlist.get(h)); 

        h++; 
       } 

      }); 
       try { 
        Thread.sleep(15000); 
       } catch(InterruptedException e) { 
        e.printStackTrace(); 
       } 

      } 
     } 
    }).start(); 
+1

? –

+0

whileループは動作していますが、遅延は15秒ありません –

+1

typoですか?あなたのブレースは外に見え、近いブレースはありません。新しいRunnable宣言の中にtry/Thread.sleepブロックが表示されます。しかし、もしそれが実際にコンパイルされるのであれば、私は驚いています。 –

答えて

1

コードが動作しない理由を私は表示されません。考えられる問題の1つは、内部Runnableインスタンスが渡されているhandler.post()内でrun()を呼び出すのを忘れている可能性があります。

このサンプルコード(ループは1回だけ実行されます)を試し、自分の問題を発見できるかどうかを確認してください。

private static List<String> taxiidlist = new ArrayList<>(); 
static int h = 0; 

public static void main(String[] args) { 

    int id = 0; 
    boolean assined = false; 
    boolean requested = true; 
    taxiidlist.add("One"); 

    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      while (h <= taxiidlist.size() && assined == false && requested == true) { 
       post(new Runnable() { 
        @Override 
        public void run() { 
         client2(id, taxiidlist.get(h)); 
         h++; 

         try { 
          Thread.sleep(1500); 
          System.out.println("slept!"); 
         } catch (InterruptedException e) { 
          e.printStackTrace(); 
         } 
        } 
       }); 

       break; 
      } 
     } 
    }).start(); 

} 

static void post(Runnable runnable) { 
    System.out.println("post!"); 
    runnable.run(); 

} 

static void client2(int id, String s) { 
    System.out.println("client2!"); 
} 

希望はこのことができます:)

働いたり、誤って動作していない何
+0

ありがとう、私はなぜあなたのコードが動作しているのか分からない –

+0

私が作った唯一の変更は、 'run()'メソッドを使って内部Runnableを呼び出すコードを追加することでした。私は、あなたの問題を追跡するのをより簡単にするために、私があなたとできる限り近くにすべてを保管しています。あなたの 'client2()'は呼び出されていますか? – Prathap

+0

はいclient2()が現在呼び出されています –

関連する問題