android常用封装 --- BaseActivity

  1. public abstract class BaseActivity extends Activity {  
  2.     /** 
  3.      * 记录处于前台的Activity 
  4.      */  
  5.     private static BaseActivity mForegroundActivity = null;  
  6.     /** 
  7.      * 记录所有活动的Activity 
  8.      */  
  9.     private static final List<BaseActivity> mActivities = new LinkedList<BaseActivity>();  
  10.   
  11.     @Override  
  12.     protected void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         initView();  
  15.         initFindViewById();  
  16.         initData();  
  17.         initEvent();  
  18.   
  19.         // initActionBar();  
  20.     }  
  21.   
  22.   
  23.     @Override  
  24.     protected void onResume() {  
  25.         mForegroundActivity = this;  
  26.         super.onResume();  
  27.     }  
  28.   
  29.     @Override  
  30.     protected void onPause() {  
  31.         mForegroundActivity = null;  
  32.         super.onPause();  
  33.     }  
  34.   
  35.     abstract protected void initView();  
  36.   
  37.     abstract protected void initData();  
  38.   
  39.     protected void initActionBar() {  
  40.   
  41.     }  
  42.   
  43.     /** 
  44.      * 关闭所有Activity 
  45.      */  
  46.     public static void finishAll() {  
  47.         List<BaseActivity> copy;  
  48.         synchronized (mActivities) {  
  49.             copy = new ArrayList<BaseActivity>(mActivities);  
  50.         }  
  51.         for (BaseActivity activity : copy) {  
  52.             activity.finish();  
  53.         }  
  54.     }  
  55.   
  56.     /** 
  57.      * 关闭所有Activity,除了参数传递的Activity 
  58.      */  
  59.     public static void finishAll(BaseActivity except) {  
  60.         List<BaseActivity> copy;  
  61.         synchronized (mActivities) {  
  62.             copy = new ArrayList<BaseActivity>(mActivities);  
  63.         }  
  64.         for (BaseActivity activity : copy) {  
  65.             if (activity != except)  
  66.                 activity.finish();  
  67.         }  
  68.     }  
  69.   
  70.     /** 
  71.      * 是否有启动的Activity 
  72.      */  
  73.     public static boolean hasActivity() {  
  74.         return mActivities.size() > 0;  
  75.     }  
  76.   
  77.     /** 
  78.      * 获取当前处于前台的activity 
  79.      */  
  80.     public static BaseActivity getForegroundActivity() {  
  81.         return mForegroundActivity;  
  82.     }  
  83.   
  84.     /** 
  85.      * 获取当前处于栈顶的activity,无论其是否处于前台 
  86.      */  
  87.     public static BaseActivity getCurrentActivity() {  
  88.         List<BaseActivity> copy;  
  89.         synchronized (mActivities) {  
  90.             copy = new ArrayList<BaseActivity>(mActivities);  
  91.         }  
  92.         if (copy.size() > 0) {  
  93.             return copy.get(copy.size() - 1);  
  94.         }  
  95.         return null;  
  96.     }  
  97.   
  98.     protected void initFindViewById() {  
  99.   
  100.     }  
  101.   
  102.     protected void initEvent() {  
  103.   
  104.     }  
  105.   
  106.     /** 
  107.      * 退出应用 
  108.      */  
  109.     public void exitApp() {  
  110.         finishAll();  
  111.         android.os.Process.killProcess(android.os.Process.myPid());  
  112.     }  
  113. }  
posted @ 2017-04-27 16:13  天涯海角路  阅读(298)  评论(0)    收藏  举报