我在mapview中使用getMapAsync()
而不是getMap()
。但是,我想知道getMap()
和getMapAsync
之间的区别。
答案 0 :(得分:2)
因此,应该使用getMapAsync,因为它等待地图正确初始化并通过回调提供Map实例。
public class MapActivity extends Activity implements OnMapReadyCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity);
MapFragment mapFrag = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFrag.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
// Place your logic here
map.setIndoorEnabled(true);
map.setBuildingsEnabled(true);
map.getUiSettings().setZoomControlsEnabled(false);
}
}
答案 1 :(得分:1)
getMapAsync允许你在map是init时使用回调;)
答案 2 :(得分:1)
<强> car
强>
public void getMapAsync (OnMapReadyCallback callback)
设置一个回调对象,该对象将在准备好使用GoogleMap实例时触发。
请注意:
必须从主线程调用此方法。
回调将在主线程中执行。
如果用户的设备上未安装Google Play服务,则在用户安装之前不会触发回调。
在创建后立即销毁GoogleMap的极少数情况下,不会触发回调。
回调提供的GoogleMap对象非空。