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五个进程等级
  2. Android(安卓)盘点所有Dialog 对话框 大合集 详解
  3. Android守护进程
  4. 批量反编译Android(安卓)XML文件Python脚本
  5. android 悬浮球 (所有界面可用) 开发
  6. 调用所有的 android activity 的实现
  7. Android判断应用程序从后台回到前台
  8. android列出目录下的所有图片
  9. android 8.0 service

随机推荐

  1. Android设备Root检测方法
  2. Android的图片浏览源码解读
  3. Android(安卓)Studio如何使用logcat
  4. Android的进阶学习(五)--Messenger的使用和
  5. 《Android经验分享》周刊第7期
  6. build android for VMware
  7. android 选项卡(TabHost) 置底
  8. Android Studio通过修改图标资源值实现图
  9. Android动画-Interpolator(插值器)
  10. android各版本新特性