title: Google Maps API V2 addMarker and OnCameraChangeListener
body: <p><strong>Scenario</strong></p>
  
  <ul>
  <li>Initial user position is read and a marker is added + camera position is set to that location.</li>
  <li>Each time the user drags/zooms the camera I need to call a web service and pass the rectangle coordinates of the map. This web service returns a list of locations to be displayed as markers which are within the map's bounds.</li>
  </ul>
  
  <p>So basically I am doing something like:</p>
  
  <p><strong>onCreate</strong></p>
  
  <pre><code>mMap.setOnCameraChangeListener(new OnCameraChangeListener() {
      @Override
      public void onCameraChange(CameraPosition cameraPosition) {
          // Make a web call for the locations
          myTask = new MyTask();
          myTask.execute();
  }
  </code></pre>
  
  <p>On task <strong>onPostExecute</strong> for each item returned from the web service I make:</p>
  
  <pre><code>mMap.addMarker(
      new MarkerOptions().position(
          new LatLng(myPoint.getLatitude(), myPoint.getLongitude())
      )
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pushpin))
  );
  </code></pre>
  
  <p><strong>The expected behavior:</strong>: each time the user scrolls or zooms, the camera position changes and the async task gets called again to get a fresh batch of active coordinates</p>
  
  <p><strong>The actual behavior</strong>: infinite loop between <code>onPostExecute</code> and <code>OnCameraChangeListener</code>.</p>
  
  <p>From what it seems to me, but maybe I am wrong, the <code>addMarker</code> triggers a camera change event ? How can I make the expected behavior described above ?</p>