public class AsyncGet {
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.baidu.com")
.build();
client.newCall(request).enqueue(new Callback() {
public void onFailure(Request request, IOException e) {
e.printStackTrace();
}
public void onResponse(Response response) throws IOException {
if (!response.isSuccessful()) {
throw new IOException("服务器端错误: " + response);
}
System.out.println(response.body().string());
}
});
}
}
/* 以fragment为例 */
public class BaseFragment extends Fragment implements Handler.Callback {
private static final int MSG_QUERY_DATA = 0x00;
private static final int MSG_DISPLAY_DATA = 0x01;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.activity = activity;
/* setup handler */
HandlerThread handlerThread = new HandlerThread(getClass().getName());
handlerThread.start();
backgroundHandler = new Handler(handlerThread.getLooper(), this);
uiHandler = new Handler(activity.getMainLooper(), this);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
/* start */
backgroundHandler.sendEmptyMessage(MSG_QUERY_DATA);
}
@Override
public void onDestroyView() {
/* 將Message清空,backgroundThread結束掉 */
backgroundHandler.removeCallbacksAndMessages(null);
uiHandler.removeCallbacksAndMessages(null);
backgroundHandler.getLooper().quit();
super.onDestroyView();
}
@Override
public boolean handleMessage(Message msg) {
/* 如果fragment不在Activity上了,直接return掉,避免NPE */
if (!isAdded()) return false;
/* 做各種MSG */
switch(msg.what){
case MSG_QUERY_DATA:
// do okHttp without callback
Response response = client.newCall(request).execute();
// 傳回 uiThread 做UI更新
Message respMsg = uiHandler.obtainMessage();
respMsg.what = MSG_DISPLAY_DATA;
respMsg.obj = response;
backgroundHandler.sendMessage(respMsg);
break;
case MSG_DISPLAY_DATA:
Response apiResponse = (Response)msg.obj;
// 失敗
if(null == apiResponse){
//show error
}
// 成功
else{
//display data on UI
}
break;
return false;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有