package com.todayinfo.ui.activity; import java.io.File; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.inputmethod.InputMethodManager; import android.widget.ImageView; import android.widget.Toast; import com.jinghua.todayinformation.R; import com.squareup.picasso.Picasso; import com.todayinfo.controller.NetWorkCenter; import com.todayinfo.service.UserController; import com.todayinfo.ui.api.DataTask; import com.todayinfo.ui.api.PwdErrorListener; import com.todayinfo.ui.api.RetryNetwork; import com.todayinfo.utils.BitmapUtils; import com.todayinfo.utils.ShareUtils; import com.todayinfo.utils.ThreadPoolManager; public abstract class SuperActivity extends Activity implements RetryNetwork, PwdErrorListener { protected boolean isAvtive = false; protected Context mContext; protected boolean isPwdError = false; protected InputMethodManager imm; protected ShareUtils mShareUtils; protected UserController mUserController; NetWorkCenter mNetWorkCenter; ThreadPoolManager mThreadPoolManager; ProgressDialog progress; protected BitmapUtils mBitmapUtils; /** * 用于判断APP是否是正常启动,还是奔溃后自动重启的 */ protected static boolean isNormalStart = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); mContext = this; isAvtive = true; imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mShareUtils = new ShareUtils(this); mUserController = UserController.getInstance(mContext.getApplicationContext()); mBitmapUtils = new BitmapUtils(mContext); } @Override public void pwdError() { runOnUiThread(new Runnable() { @Override public void run() { isPwdError = true; } }); } /** * UI线程执行一个任务 * * @param run */ protected void runOnUi(Runnable run) { runOnUiThread(run); } protected DataTask dataTask = new DataTask(0) { }; /** * 显示进度条 */ void showProgressDialog(){ runOnUiThread(new Runnable() { @Override public void run() { if ( progress == null) { progress = new ProgressDialog(mContext); progress.setMessage("正在加载,请稍后..."); progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); progress.setCancelable(true); } progress.show(); } }); } /** * 隐藏进度条 */ void dismissProgressDialog(){ runOnUiThread(new Runnable() { @Override public void run() { if( progress!=null ){ progress.dismiss(); } } }); } /** * 得到一个进度条 * @param msg * @return */ public ProgressDialog getProgressDialog(String msg) { progress = new ProgressDialog(this); // progressDialog.setIndeterminate(true); progress.setMessage(msg); progress.setCancelable(true); return progress; } /** * 弹出吐司 * @param msg */ protected void showToast(final String msg) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show(); } }); } @Override protected void onPause() { super.onPause(); isAvtive = false; if ( mNetWorkCenter!=null ) { mNetWorkCenter.removeRetry(); } } @Override protected void onResume() { super.onResume(); obtainInfo(); isAvtive = true; if( !isNormalStart ){ //非正常启动 // Intent i = new Intent(this, FlashActivity.class); // i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // startActivity(i); } if( mNetWorkCenter!=null ) { mNetWorkCenter.setRetryNetwork(this); } } @Override protected void onDestroy() { super.onDestroy(); isAvtive = false; if ( mNetWorkCenter!=null ) { mNetWorkCenter.removeRetry(); } } public boolean getAvtive(){ return isAvtive; } protected void hintNoNetWork(){ } protected float getDimen(int id){ float dimension = getResources().getDimension(id); return dimension; } protected void executeTask(Runnable run){ mThreadPoolManager.executeTask(run); } /** * 返回对象本身 * * @return */ public Context This() { return this; } /** * 接收数据 */ protected abstract void obtainInfo(); /** * 隐藏输入法 * * @param context * @param achor */ public static void hideSoftInput(Context context, View achor) { InputMethodManager imm = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(achor.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } /** * 加载图片 * * @param tuContainer * @param item */ protected void loadIMG(ImageView img, String url) { Picasso.with(mContext).load(url).error(R.drawable.touxing).into(img); } /** * 加载图片 * * @param tuContainer * @param item */ protected void loadIMG(ImageView img, File file) { Picasso.with(mContext).load(file).error(R.drawable.touxing).into(img); } }