听起来像什么可能发生的是代码检查map.isLoaded()已初始化之前。有关如何正确检查初始化的官方说明,请检查MapView Reference。
我的参考代码扩展
map = (MapView) findViewById(R.id.map);
tileLayer = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer");
tileLayer.setOnStatusChangedListener(new OnStatusChangedListener() {
public void onStatusChanged(Object source, STATUS status) {
if (OnStatusChangedListener.STATUS.INITIALIZED == status){
map.addLayer(tileLayer); //when layer is initialized add to map
}
}
});
map.setOnStatusChangedListener(new OnStatusChangedListener() {
private static final long serialVersionUID = 1L;
public void onStatusChanged(Object source, STATUS status) {
//conditional checks if mapView's status has changed to initialized
if (OnStatusChangedListener.STATUS.INITIALIZED == status && source == map)
{
Toast mapViewToast = Toast.makeText(ActivityName.this, "MapView loaded", Toast.LENGTH_LONG);
mapViewToast.show();
}
}
});