我现在有一个界面需要同时访问两个接口从服务器获取数据,是用同步还是异步的方式好.我用了两种方法,都是同步的.第一种是创建一个子线程,同时把两个接口放在里面做网络访问;第二种是创建线程池去访问.请问同步方式还是异步方式访问好?有更优的方法吗?
第一种方法的代码:
new Thread(new Runnable() {
@Override
public void run() {
String url = ConstantsUtils.HEAD_URL + "/video";
try {
Response response = NetWorkRequestUtils.postRequest(url, new HomeDataObject());//接口一
if (response.isSuccessful()) {
String json = response.body().string();
Log.d(TAG, "布局一成功json=" + json);
PreferenceUtils.putString(getActivity(), url, json);//缓存JSON数据
setInitData(json);//获取到json数据后回调
} else {
Log.d(TAG, "布局一请求失败222222");
Message obtain = Message.obtain();
obtain.what = SHOW_INIT_DATA_FAIL;
mHandler.sendMessage(obtain);
}
} catch (Exception e) {
Log.d(TAG, "布局一请求失败33333333" + "e.printStackTrace()");
Message obtain = Message.obtain();
obtain.what = SHOW_INIT_DATA_FAIL;
mHandler.sendMessage(obtain);
e.printStackTrace();
}
//二:获取多布局相关推荐数据,当前首页模块channelid不用传
try {
Response response = NetWorkRequestUtils.postRequest(ConstantsUtils.HEAD_URL + "/video/recoList", new RelatedRecommendedObject());//接口二