title: how to show markers all the time by AsyncTask or Handler in google map version 2
body: <p>The final thing I am doing is: I have the google map in my application with som buttons and extra stuffs. but I also have to show the updated location of a marker all the time
  inside my map (I will get the data from external device not gps sensor of android phone). So I thought using thread first but then changes to AsyncTask as you see in my code and tried to use addMarker method there but every time I run it map just stopps working.
  I want to just show one marker on map now but now successful!
  The GoogleMap map cannot be reachable via UI thread and inside AsyncTask
  why? anybody encountered this?
  what should i do to solve this...
  plz help</p>
  
  <pre><code> package com.example.mapsversion2;
  
      //All imports
  
      public class MainActivity extends Activity  {
      static final LatLng exmpoint = new LatLng(59.331438,18.064957);
  
      public static GoogleMap map;
  
      Button button;
      Button waypointButton;
      Button destinationButton;
      Marker wayPoint;
      TextView positiontext;
      int countclick= 3;
      public static DataModel autoboxdata= new DataModel();
      public static Bitmap arrowBitmap;
      Marker currentPlace;
      MapFragment mapF;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
       mapF = ((MapFragment) getFragmentManager().findFragmentById(R.id.map));
       map= mapF.getMap();
       map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
  
      //  positiontext = (TextView) findViewById(R.id.position);
  
      // Move the camera instantly to hamburg with a zoom of 15.
      map.moveCamera(CameraUpdateFactory.newLatLngZoom(exmpoint,15));
  
      // Zoom in, animating the camera.
      map.animateCamera(CameraUpdateFactory.zoomTo(6), 2000, null);
  
      addListenerOnButton();
      map.setOnMarkerDragListener(this);
  
      new PositionUpdate1().execute(); 
    }
      @Override
    public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
    }
  
    public void addListenerOnButton() {
  
          destinationButton= (Button) findViewById(R.id.destinationB);
  
          destinationButton.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View arg0) {
                  //do something
              }
          });     
      }
  
    }
  
      public class PositionUpdate1  extends AsyncTask&lt;Void, Void, Void&gt;{
  
  
      @Override
      protected Void doInBackground(Void...arg0) {
          // TODO Auto-generated method stub
  
  
          map.addMarker(new MarkerOptions()
              .position(hereIam) );
  
          System.out.println("hej");
          return null;
      } 
    }
      } 
  </code></pre>
  
  <p>Here is the LogCat:</p>
  
  <pre><code>02-17 18:57:17.805: E/AndroidRuntime(9905): FATAL EXCEPTION: main
  02-17 18:57:17.805: E/AndroidRuntime(9905): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapsv2/com.example.mapsv2.MainActivity}: java.lang.NullPointerException
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.os.Handler.dispatchMessage(Handler.java:99)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.os.Looper.loop(Looper.java:137)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.ActivityThread.main(ActivityThread.java:4898)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at java.lang.reflect.Method.invokeNative(Native Method)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at java.lang.reflect.Method.invoke(Method.java:511)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at dalvik.system.NativeStart.main(Native Method)
  02-17 18:57:17.805: E/AndroidRuntime(9905): Caused by: java.lang.NullPointerException
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at com.example.mapsv2.MainActivity.onCreate(MainActivity.java:140)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.Activity.performCreate(Activity.java:5206)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
  02-17 18:57:17.805: E/AndroidRuntime(9905):     ... 11 more
  02-17 18:57:17.935: E/android.os.Debug(2287): !@Dumpstate &gt; dumpstate -k -t -z -d -o /data/log/dumpstate_app_error
  </code></pre>