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); } }