private void performSyncHttpRequest() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.baidu.com")
.build();
Call call = client.newCall(request);
Response response = call.execute();
}
private Handler requestHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case REQUEST_SUCCESS:
Toast.makeText(MainActivity.this, "SUCCESSFUL", Toast.LENGTH_SHORT).show();
break;
case REQUEST_FAIL:
Toast.makeText(MainActivity.this, "request failed", Toast.LENGTH_SHORT).show();
break;
default:
super.handleMessage(msg);
}
}
};
private void performSyncHttpRequest() {
Runnable requestTask = new Runnable() {
@Override
public void run() {
Message msg = requestHandler.obtainMessage();
try {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.baidu.com")
.build();
Call call = client.newCall(request);
// 1
Response response = call.execute();
if (!response.isSuccessful()) {
msg.what = REQUEST_FAIL;
} else {
msg.what = REQUEST_SUCCESS;
}
} catch (IOException ex) {
msg.what = REQUEST_FAIL;
} finally {
// send the message
// 2
msg.sendToTarget();
}
}
};
Thread requestThread = new Thread(requestTask);
requestThread.start();
}
private void performAsyncHttpRequest() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.baidu.com")
.build();
Call call = client.newCall(request);
// 1
call.enqueue(new Callback() {
// 2
@Override
public void onFailure(Call call, IOException e) {
//Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
if (Looper.getMainLooper().getThread() == Thread.currentThread()) {
Log.d(TAG, "Main Thread");
} else {
Log.d(TAG, "Not Main Thread");
}
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
// 3
if (Looper.getMainLooper().getThread() == Thread.currentThread()) {
Log.d(TAG, "Main Thread");
} else {
Log.d(TAG, "Not Main Thread");
}
}
});
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "code: ");
Toast.makeText(MainActivity.this, String.valueOf(response.code()), Toast.LENGTH_SHORT).show();
}
});
MainActivity.this.mView.post(new Runnable() {
public void run() {
Log.d("UI thread", "I am the UI thread");
}
});
private class BackgroundTask extends AsyncTask<String, Void, Bitmap> {
protected void onPostExecute(Bitmap result) {
Log.d("UI thread", "I am the UI thread");
}
}
public final void runOnUiThread(Runnable action) {
if (Thread.currentThread() != mUiThread) {
mHandler.post(action);
} else {
action.run();
}
}
// mHandler.post(action); 之post方法的实现
public final boolean post(Runnable r) {
return sendMessageDelayed(getPostMessage(r), 0);
}
public boolean post(Runnable action) {
final AttachInfo attachInfo = mAttachInfo;
if (attachInfo != null) {
return attachInfo.mHandler.post(action);
}
// Assume that post will succeed later
ViewRootImpl.getRunQueue().post(action);
return true;
}
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
final String errorMMessage = e.getMessage();
if (Looper.getMainLooper().getThread() == Thread.currentThread()) {
Log.d(TAG, "Main Thread");
} else {
Log.d(TAG, "Not Main Thread");
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, errorMMessage, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
if (Looper.getMainLooper().getThread() == Thread.currentThread()) {
Log.d(TAG, "Main Thread");
} else {
Log.d(TAG, "Not Main Thread");
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "code: ");
Toast.makeText(MainActivity.this, String.valueOf(response.code()), Toast.LENGTH_SHORT).show();
}
});
}
});
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有