title: Android: How to send http request via service every 10 seconds
body: <p>I need to receive a status from the server every 10 seconds.</p>
  
  <p>I tried to do that by sending a http request via service.</p>
  
  <p>The problem is that my code executes only once.</p>
  
  <p>This is the code for my service:</p>
  
  <pre><code>public class ServiceStatusUpdate extends Service {
  
  @Override
  public IBinder onBind(Intent intent) {
      // TODO Auto-generated method stub
      return null;
  }
  
  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
      while(true)
      {
          try {
              Thread.sleep(10000);
          } catch (InterruptedException e) {
              new DoBackgroundTask().execute(Utilities.QUERYstatus);
              e.printStackTrace();
          }
          return START_STICKY;            
      }
  }
  
  private class DoBackgroundTask extends AsyncTask&lt;String, String, String&gt; {
  
      @Override
      protected String doInBackground(String... params) {
          String response = "";
          String dataToSend = params[0];
          Log.i("FROM STATS SERVICE DoBackgroundTask", dataToSend);
          HttpClient httpClient = new DefaultHttpClient();
          HttpPost httpPost = new HttpPost(Utilities.AGENT_URL);
  
          try {
              httpPost.setEntity(new StringEntity(dataToSend, "UTF-8"));
  
              // Set up the header types needed to properly transfer JSON
              httpPost.setHeader("Content-Type", "application/json");
              httpPost.setHeader("Accept-Encoding", "application/json");
              httpPost.setHeader("Accept-Language", "en-US");
  
              // Execute POST
              HttpResponse httpResponse = httpClient.execute(httpPost);
              HttpEntity responseEntity = httpResponse.getEntity();
              if (responseEntity != null) {
                  response = EntityUtils.toString(responseEntity);
              } else {
                  response = "{\"NO DATA:\"NO DATA\"}";
              }
          } catch (ClientProtocolException e) {
              response = "{\"ERROR\":" + e.getMessage().toString() + "}";
          } catch (IOException e) {
              response = "{\"ERROR\":" + e.getMessage().toString() + "}";
          }
          return response;
      }
  
      @Override
      protected void onPostExecute(String result) {
          Utilities.STATUS = result;
          Log.i("FROM STATUS SERVICE: STATUS IS:", Utilities.STATUS);
          super.onPostExecute(result);
      }
  }
  }
  </code></pre>
  
  <p>Thank's alot
  Avi</p>