关于安卓中网络操作来不及执行的问题

在一个方法中一个值需要网络操作才能拿到,但是网络操作没完成就执行到return,导致返回出来拿到的是null值,这种情况怎么解决啊?
比如以下情况
public Map getData(){

                //网络操作
                x.http().get(requestParams, new Callback.CommonCallback<String>() {
                @Override
                public void onSuccess(String result) {

                    map.put("data",data);

                }
                }
                return map;   
}

死循环轮询直到检测到操作完成。

不要用这种方式啊,用接口回掉不是很好嘛

用接口调用方式把,网络请求本来就是异步的,你这样返回肯定是空的。

用锁,在http的get函数调用后,return之前休眠,再onSuccess函数里唤醒这个锁,继续执行return map就可以了

大概下面这个样子
synchronized (mActionDoneSync) {
//网络操作
x.http().get(requestParams, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
mActionDoneSync.notifyAll();
map.put("data",data);

            }
            }
                            mActionDoneSync.wait(delay);
            return map;  

}

用网络请求框架完美解决,换个方式