package com.d3.d3xmpp.util;
import java.util.Map;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;
import com.d3.d3xmpp.xmpp.XmppConnection;
import com.d3.d3xmpp.R;
public abstract class LoadThread {
private ProgressDialog mdialog;
private Context mcontext;
Map<String, String> map = null;
boolean isHint;
public LoadThread(Context context, String urls, Map<String, String> _map) {
isHint = true;
mcontext = context;
map = _map;
toLoad(urls);
}
protected void toLoad(String urls) {
ConnectivityManager cwjManager = (ConnectivityManager) mcontext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cwjManager.getActiveNetworkInfo();
if (info == null) {
Tool.initToast(mcontext, mcontext.getString(R.string.net_error));
return;
}
if (((Activity) mcontext).isFinishing()) {
return;
}
new AsyncTask<String, Integer, String>() {
@Override
protected void onPreExecute() {
if (isHint) {
mdialog = ProgressDialog.show(mcontext, mcontext.getResources().getString(R.string.dialog_title),
mcontext.getResources().getString(R.string.dialog_load_content));
mdialog.setCancelable(true);
mdialog.setContentView(R.layout.dialog_loadding);
mdialog.setIndeterminateDrawable(mcontext.getResources().getDrawable(
R.drawable.progress_dialog_style));
// mdialog.setCanceledOnTouchOutside(false);//
// ���õ����ĻDialog����ʧ
}
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
if (TextUtils.isEmpty(params[0])) {
return null;
}
String result = "";
try {
result = XmppConnection.requestService(params[0], map);
} catch (Exception e) {
e.printStackTrace();
// MyTools.writerLog(MyTools.getExceptionString(e));
}
return result;
}
@Override
protected void onPostExecute(String jsonStrings) {
if (isHint && (mdialog == null || !mdialog.isShowing())) {
return;
} else {
try {
refreshUI(jsonStrings);
if (isHint && (mdialog != null && mdialog.isShowing())) {
mdialog.dismiss();
}
} catch (Throwable e) {
e.printStackTrace();
}
}
}
}.execute(urls);
}
protected abstract void refreshUI(String result);
}