zoukankan      html  css  js  c++  java
  • Android 架构【转】

    import java.util.ArrayList;
    import java.util.List;
     
    import android.app.Activity;
    import android.app.Application;
     
     
    /**
     * 应用配置类
     * @author leehongee
     *
     */
    public class AppManager extends Application{
        /**打开的activity**/
        private List<Activity> activities = new ArrayList<Activity>();
        /**应用实例**/
        private static AppManager instance;
        /**
         *  获得实例
         * @return
         */
        public static AppManager getInstance(){
            return instance;
        }
        /**
         * 新建了一个activity
         * @param activity
         */
        public void addActivity(Activity activity){
            activities.add(activity);
        }  
        /**
         *  结束指定的Activity
         * @param activity
         */
        public void finishActivity(Activity activity){
            if (activity!=null) {
                this.activities.remove(activity);
                activity.finish();
                activity = null;
            }
        }  
        /**
         * 应用退出,结束所有的activity
         */
        public void exit(){
            for (Activity activity : activities) {
                if (activity!=null) {
                    activity.finish();
                }
            }
            System.exit(0);
        }      
         
        @Override
        public void onCreate() {
                instance = this;          
        }      
    }

     然后我写了一个BaseActivity,以后的Activity 都继承这个Activity,如下

    import android.app.Activity;
    import android.os.Bundle;
    import android.os.StrictMode;
     
    /**
     * 基本Activity
     * @author leehongee
     * @date 2013-1-26 下午6:24:47
     * @version
     */
    public class BaseActivity extends Activity{
         
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //添加到Activity集合
            AppManager.getInstance().addActivity(this);
            //手机端SDK>10,即 android 2.3.x之后在主线程中访问网络需要加入如下代码
            if (AppConfig.getSDKVersionNumber()>10) {
                // 详见StrictMode文档
                StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                        .detectDiskReads()
                        .detectDiskWrites()
                        .detectNetwork()   // or .detectAll() for all detectable problems
                        .penaltyLog()
                        .build());
                StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                        .detectLeakedSqlLiteObjects()
                        .detectLeakedClosableObjects()
                        .penaltyLog()
                        .penaltyDeath()
                        .build());
            }
        }
         
        @Override
        public void onBackPressed() {
            super.onBackPressed();
            onDestroy();
        }
         
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //结束Activity&从集合中移除
            AppManager.getInstance().finishActivity(this);
        }
     
    }
  • 相关阅读:
    Linux系统管理10-----进程和计划任务管理
    07作业进程和任务管理
    Linux系统管理09-----引导过程与服务过程
    网站部署流程
    Docker 安装与使用
    基于NFS共享实现kvm虚拟主机
    GlusterFS 部署
    rsync 远程同步服务部署
    Zabbix 通过 JMX 监控 tomcat
    Zabbix 简单错误 解决方法
  • 原文地址:https://www.cnblogs.com/fx2008/p/3140692.html
Copyright © 2011-2022 走看看