public abstract class BaseActivity extends Activity {    /**     * 记录处于前台的Activity     */    private static BaseActivity mForegroundActivity = null;    /**     * 记录所有活动的Activity     */    private static final List mActivities = new LinkedList();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        initView();        initFindViewById();        initData();        initEvent();        // initActionBar();    }    @Override    protected void onResume() {        mForegroundActivity = this;        super.onResume();    }    @Override    protected void onPause() {        mForegroundActivity = null;        super.onPause();    }    abstract protected void initView();    abstract protected void initData();    protected void initActionBar() {    }    /**     * 关闭所有Activity     */    public static void finishAll() {        List copy;        synchronized (mActivities) {            copy = new ArrayList(mActivities);        }        for (BaseActivity activity : copy) {            activity.finish();        }    }    /**     * 关闭所有Activity,除了参数传递的Activity     */    public static void finishAll(BaseActivity except) {        List copy;        synchronized (mActivities) {            copy = new ArrayList(mActivities);        }        for (BaseActivity activity : copy) {            if (activity != except)                activity.finish();        }    }    /**     * 是否有启动的Activity     */    public static boolean hasActivity() {        return mActivities.size() > 0;    }    /**     * 获取当前处于前台的activity     */    public static BaseActivity getForegroundActivity() {        return mForegroundActivity;    }    /**     * 获取当前处于栈顶的activity,无论其是否处于前台     */    public static BaseActivity getCurrentActivity() {        List copy;        synchronized (mActivities) {            copy = new ArrayList(mActivities);        }        if (copy.size() > 0) {            return copy.get(copy.size() - 1);        }        return null;    }    protected void initFindViewById() {    }    protected void initEvent() {    }    /**     * 退出应用     */    public void exitApp() {        finishAll();        android.os.Process.killProcess(android.os.Process.myPid());    }}

更多相关文章

  1. Android Retrofit通过OkHttp添加Interceptor拦截器设置Get请求公
  2. 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介
  3. Android开发笔记之adb参数指南
  4. Android客户端性能参数监控
  5. Android判断应用程序从后台回到前台
  6. Android中图形参数及图形内存信息获取
  7. Android 读取SIM卡参数
  8. Android页面跳转是如何传递参数的
  9. Android参数设置父布局集体宽高

随机推荐

  1. Android学习笔记十五之TableLayout表格布
  2. N 个 Android(安卓)项目源码
  3. Android TextView 设置背景半透明,文字不
  4. Android(安卓)运行时给动态加载的图标按
  5. Android 使用 Application
  6. Android(六)通知、样式、主题、HTML
  7. 四大组件之服务(Service)
  8. DB Usage Complete / ADB 用法大全(转自g
  9. Android调用平台功能具体技巧分享
  10. [Android1.6]动态添加View的问题