title: Why my location is not updating frequently as configured
body: <p>I am fetching the locations for every minute in below code. Actually as per the requirement fetching the location every minute and send it to server via Sockets.</p>
  
  <p>Below is my code which misses location updates on server for every minutes ,I don't know the reason behind it. please suggest.</p>
  
  <pre><code>private static final int PERIOD=60000;
  
  private void initLocationTracker()
  {    
      try{
          mgr=(AlarmManager)getSystemService(ALARM_SERVICE);
          Intent i=new Intent(this, LocationPoller.class);
          i.putExtra(LocationPoller.EXTRA_INTENT, new Intent(this, LocationReceiver.class));
          i.putExtra(LocationPoller.EXTRA_PROVIDER, LocationManager.GPS_PROVIDER);
          pi=PendingIntent.getBroadcast(this, 0, i, 0);
          mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), PERIOD, pi);
      }
      catch (Exception e)
      {
          String s = e.getMessage();
      }
  }
  </code></pre>
  
  <p>Below is my code with Broadcast receiver and Sockets</p>
  
  <pre><code>public class LocationReceiver extends BroadcastReceiver {
  
      private  String _serverAddress;
      private String _addressType;
      private int _port;
      private long _driverId;
      private Location _location;
      private String _message;
      //private Context _context;
  
      @Override
      public void onReceive(Context context, Intent intent) {
          File log= new File(Environment.getExternalStorageDirectory(), "LocationLog.txt");
  
          try {
              Bundle b=intent.getExtras();
              Location loc=(Location)b.get(LocationPoller.EXTRA_LOCATION);
              String msg;
  
              if (loc==null) {
                  loc=(Location)b.get(LocationPoller.EXTRA_LASTKNOWN);
  
                  if (loc==null) {
                      msg=intent.getStringExtra(LocationPoller.EXTRA_ERROR);
                  }
                  else {
                      msg="TIMEOUT, lastKnown="+loc.toString();
                  }
              }
              else {
                  msg=loc.toString();
                  _location=loc;
                  getServerAddress(context);
                  createMessage();
                  if(!CommonRoutines.isNetworkAvailable(context))
                  {
                      return;
                  }
                  SocketManager socketManager = new SocketManager();
                  socketManager.execute();
              }
  
              if (msg==null) {
                  msg="Invalid broadcast received!";
              }
          }
          catch (Exception e) {
              Log.e(getClass().getName(), "Exception appending to log file", e);
          }
      }
  
      private boolean postLocation()
      {
          boolean result = false;
          InetAddress inetAddress=null;
          Socket socket=null;
          DataOutputStream outputStream = null;
          try
          {
              inetAddress = InetAddress.getByName(X.X.X.X);
              socket = new Socket(inetAddress,XXXX);
              outputStream= new DataOutputStream(socket.getOutputStream());
              outputStream.write(_message.getBytes());
              socket.close();
          }
          catch (UnknownHostException e)
          {
                  String s = e.getMessage();
          }
          catch (IOException e)
          {
              String s = e.getMessage();
          }
          finally
          {
             if(socket!=null){
                 try
                 {
                   socket.close();
                 }
                 catch (IOException e){}
             }
  
             if(outputStream!=null)
             {
                 try {
                      outputStream.close();
                 }
                 catch (IOException e){}
  
             }
          }
          return  result;
      }
  
      private void createMessage()
      {
          try{
              JsonGeoLocation geoLocation = new JsonGeoLocation();
              JsonGeoPosition geoPostion = new JsonGeoPosition();
              _message="";
  
              Time now = new Time();
              now.setToNow();
  
              geoLocation.setDriverId(_driverId);
              geoLocation.setLocationDateTime(DateFormat.getDateTimeInstance().format(new Date()));
              geoPostion.setLatitude(_location.getLatitude());
              geoPostion.setLongitude(_location.getLongitude());
              geoLocation.setGeoPosition(geoPostion);
  
              Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
              _message = gson.toJson(geoLocation)+"-EOM-";
          }
          catch (Exception e){
              String s = e.getMessage();
          }
      }
  
      public class SocketManager extends AsyncTask&lt;Void,Integer,Void&gt;
      {
          @Override
          protected Void doInBackground(Void... voids) {
              postLocation();
              return null;
              //return null;  //To change body of implemented methods use File | Settings | File Templates.
          }
      }
  }
  </code></pre>
  
  <p>below is example log</p>
  
  <pre><code>2012-10-23 00:00:48.0135 . Connection request initiated... 2012-10-23 00:00:48.0135 . Connection request accepted... 2012-10-23 00:00:48.0135 . Connection Id: 28383573 2012-10-23 00:00:48.3171 . Entered into OnDataIn ConnectionId: 28383573 2012-10-23 00:00:48.3176 . Data received:    {"F0":7,"F2":{"F0":51.57605743408203,"F1":0.09495019912719727},"F1":"Oct 23, 2012 12:00:48 AM"}-EOM- 2012-10-23 00:00:48.3176 . Received: JobId: 7 DateTime: 23/10/2012 00:00:48   Latitude:
  51.576057434082 Longitude: 0.0949501991271973 2012-10-23 00:00:48.3966 . Connection disconnected... 2012-10-23 00:57:57.9396 . 
  2012-10-23 00:57:57.9396 . Connection request initiated... 2012-10-23 00:57:57.9396 . Connection request accepted... 2012-10-23 00:57:57.9396 . Connection Id: 17817267 2012-10-23 00:57:58.2641 . Entered into OnDataIn ConnectionId: 17817267 2012-10-23 00:57:58.2646 . Data received:    {"F0":7,"F2":{"F0":51.57625961303711,"F1":0.09462833404541016},"F1":"Oct 23, 2012 12:58:01 AM"}-EOM- 2012-10-23 00:57:58.2646 . Received: JobId: 7 DateTime: 23/10/2012 00:58:01   Latitude:
  51.5762596130371    Longitude: 0.0946283340454102 2012-10-23 00:57:58.3396 . Connection disconnected... 2012-10-23 00:58:55.4589 .
  </code></pre>