2016-05-30 31 views
1

我试图更新与此代码:如何更新谷歌地图android处理程序的标记?

// create marker 
    MarkerOptions marker1 = new MarkerOptions().position(new LatLng(latitude, longitude)).rotation(head); 

    // Changing marker icon 
    marker1.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)); 

    // adding marker 
    googleMap.addMarker(marker1); 
    CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(latitude, longitude)).zoom(17) 
      .build(); 
    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

它不过是工作正常,当我用这对主线程,当我从Handler调用它不工作。

+0

您可以使用事件来更新标记吗? – Eenvincible

回答

0

是的,你可以使用handler更新你的用户界面。创建一个单独的方法,在地图上获取并显示标记。处理程序允许您发送和处理与线程的MessageQueue关联的Message和Runnable对象。

有一个处理器两个主要用途:在将来的某个时候被执行

  • 要安排的消息和可运行。
  • 排队要在与您自己不同的线程上执行的操作。

    Handler UI_HANDLER = new Handler(); 
    UI_HANDLER.postDelayed(UI_UPDTAE_RUNNABLE, 30000); 
    

下面是Runnable的方法放在任何地方在您的活动。

Runnable UI_UPDTAE_RUNNABLE = new Runnable() { 

@Override 
public void run() { 
drawAllMarker();//Method that will get employee location and draw it on map 
UI_HANDLER.postDelayed(UI_UPDTAE_RUNNABLE, 30000); 
} 
};