package com.hjdz.install;
import java.util.HashMap;
import org.apache.http.Header;
import com.hjdz.install.util.HttpUtils;
import com.hjdz.install.util.NetUtils;
import com.linshao.http.AsyncHttpResponseHandler;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.Toast;
@SuppressLint("ShowToast")
public abstract class NetActivity extends Activity implements
android.view.View.OnClickListener {
protected ProgressDialog dialog;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
dialog = new ProgressDialog(this);
dialog.setCancelable(false);
dialog.setMessage("正在请求,请稍候...");
dialog.setCanceledOnTouchOutside(false);
dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
HttpUtils.canclePost();
Toast.makeText(mContext, "请求取消", 300).show();
}
});
}
/**
* 网络请求
*
* @param url
* @param params
* @param TAG
*/
protected void asynNet(final String url,
final HashMap<String, String> params, final int TAG) {
if (!NetUtils.isNetworkConnected(mContext)) {
new AlertDialog.Builder(NetActivity.this).setTitle("提醒")
.setMessage("网络未连接,请设置后重试").setCancelable(false)
.setPositiveButton("设置", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(
Settings.ACTION_WIRELESS_SETTINGS));// 进入无线网络配置界面
}
}).create().show();
} else {
HttpUtils.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onStart() {
super.onStart();
dialog.show();
}
@Override
public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
dialog.dismiss();
success(new String(arg2), TAG);
}
@Override
public void onFailure(int arg0, Header[] arg1, byte[] arg2,
Throwable arg3) {
failure(TAG);
dialog.dismiss();
new AlertDialog.Builder(mContext).setTitle("请求错误")
.setMessage("服务器错误或连接失败,请重试").setCancelable(false)
.setPositiveButton("重新请求", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
asynNet(url, params, TAG);
}
}).setNegativeButton("返回", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
NetActivity.this.finish();
}
}).create().show();
}
});
}
}
public void failure(int tag) {
}
public abstract void success(String result, int tag);
public abstract void onclick(View v);
@Override
public void onClick(View v) {
onclick(v);
}
}