/** * @description: * @author chenshiqiang E-mail:csqwyyx@163.com * @date 2014年4月23日 下午9:19:09 * @version 1.0 */ package com.csq.thesceneryalong.ui.activitys.base; import java.lang.reflect.Field; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v7.app.ActionBarActivity; import android.view.ViewConfiguration; import com.csq.thesceneryalong.ui.dialogs.ProgressLoadingDialog; import com.umeng.analytics.MobclickAgent; abstract public class BaseActionBarActivity extends ActionBarActivity { // ------------------------ Constants ------------------------ // ------------------------- Fields -------------------------- protected FragmentActivity activity; protected FragmentManager fragmentManager; protected ProgressLoadingDialog mLoadingDialog; // ----------------------- Constructors ---------------------- // -------- Methods for/from SuperClass/Interfaces ----------- @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.activity = this; fragmentManager = getSupportFragmentManager(); try { ViewConfiguration mconfig = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class .getDeclaredField("sHasPermanentMenuKey"); if (menuKeyField != null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(mconfig, false); } } catch (Exception ex) { } } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); MobclickAgent.onResume(this); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); MobclickAgent.onPause(this); } @Override public void finish() { // TODO Auto-generated method stub super.finish(); overridePendingTransition(0, 0); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); releaseResources(); System.gc(); } // --------------------- Methods public ---------------------- protected <T> T getViewById(int id){ return (T) findViewById(id); } public void startActivity(Class<?> cls,boolean finish){ Intent intent = new Intent(this,cls); intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(intent); if(finish){ finish(); } } public static void startActivity(Context context,Class<?> cls,boolean finish){ Intent intent = new Intent(context,cls); intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); context.startActivity(intent); if(finish && context instanceof Activity){ Activity ac = (Activity)context; ac.finish(); } } public void exitApp() { android.os.Process.killProcess(android.os.Process.myPid()); } public void showLoadingDialog(String msg){ if(mLoadingDialog == null){ mLoadingDialog = new ProgressLoadingDialog(activity, msg); }else{ mLoadingDialog.dismiss(); } mLoadingDialog.show(); } public void updateLoadingDialogMsg(String msg){ if(mLoadingDialog != null){ mLoadingDialog.updataMsg(msg); } } public void updateLoadingDialogProgress(int progress){ if(mLoadingDialog != null){ mLoadingDialog.updataProgress(progress); } } public void hideLoadingDialog(){ if(mLoadingDialog != null){ mLoadingDialog.dismiss(); } } // --------------------- Methods private --------------------- /** * @description: 界面退出时释放占用内存特别多的资源 * @author: chenshiqiang E-mail:csqwyyx@163.com */ abstract protected void releaseResources(); // --------------------- Getter & Setter --------------------- // --------------- Inner and Anonymous Classes --------------- }