2017-03-09 12 views
0
final int delayTime = 20000; 

    final Handler handler = new Handler(); 

    Runnable runnable = new Runnable() { 
     @Override 
     public void run() { 
      String Refresh_Location; 
      Refresh_Location = "http://maps.google.com/maps?q=loc:" + "" + currentLatitude + "," + currentLongitude; 
      Log.e("Refresh Location", "--->" + Refresh_Location); 

      new SendLiveLatLong().execute(); 
      handler.postDelayed(this, delayTime); 
     } 
    }; 

    handler.postDelayed(runnable, delayTime); 

この関数を使用して20秒ごとにWebサービスを呼び出すことができます。しかし、正常に動作せず、毎回そのWebサービスを呼び出さなかった。ハンドラ関数がWebサービスを呼び出さない

+0

20秒後に1回だけ実行する必要があります。 「20秒ごとに」実行するために何をしましたか?完全なコードを投稿してください。 – tahsinRupam

+0

私は新しいSendLiveLatLong()を呼び出したいと思います。 20秒ごとに私のウェブサービスはどれですか。 –

+0

投稿SendLiveLatLongコード – shadygoneinsane

答えて

1

私はこの問題を抱えていて、HandlerをTimerに置き換え、実行可能ではなくTimerTaskを使用しました。 これですべてが問題ありません。

+0

タイマーでも試しました。タイマータイマー=新しいタイマー(); timer.schedule(新しいTimerTaskを(){ @Override公共ボイドラン(){ ストリングRefresh_Location; Refresh_Location = "http://maps.google.com/maps?q=loc:" + "" + currentLatitude + "" + currentLongitude; Log.e( "更新位置"、 "--->" + Refresh_Location); 新しいSendLiveLatLong()()を実行; }}、20000)。 しかし、それはまだ動作しませんでした。 –

+0

timer.schedule(new TimerTask(......)、20000,20000)を使用します。 –

+0

実際には20秒ごとに正常に動作していますが、ログは表示されますが、毎回そのwebservicesを呼び出すことはありません。 –

関連する問題