在启动onMapReady回调之前等待数据

时间:2016-07-01 10:51:49

标签: android android-asynctask android-maps-v2

我在我的活动上实施了一张地图,但纬度和经度来自服务器。 AsyncTask正在请求这些值,但我不知道如何在启动OnMapReadyCallback回调之前等待接收数据......

这是我的代码:

    @Override
public void onCreate(Bundle savedInstanceState) {
....
//retrieve the latitude and longitude
new ProgressTask().execute();

m = ((SupportMapFragment) this.getSupportFragmentManager()
            .findFragmentById(R.id.map));   
//need to wait for AsyncTask...
m.getMapAsync(this);

我希望启动命令

m.getMapAsync(this);

在我的AsyncTask的onPostExecute中:

@Override
protected void onPostExecute(OnMapReadyCallback result) {
....
....

但我不知道如何将OnMapReadyCallback的params传递给AsyncTask?

1 个答案:

答案 0 :(得分:1)

我终于找到了一个解决方案(不确定这是最好的...)来检索My Activity的上下文(实现OnMapReadyCallback)我只是调用了

m.getMapAsync(this);

来自onPOstExecute的方法:

@Override
protected void onPostExecute(Fragment result) {
....
loadMap();
}

public void loadMap(){

    m.getMapAsync(this);
}