getMap()和getMapAsync()之间的区别

时间:2017-11-16 09:38:01

标签: android google-maps

我在mapview中使用getMapAsync()而不是getMap()。但是,我想知道getMap()getMapAsync之间的区别。

3 个答案:

答案 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对象非空。