zoukankan      html  css  js  c++  java
  • Android 完美退出 App 方法

    大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
     
    使用全局变量。对了,第一个想到的就是继承 Application,代码入下:
        public class AgentApplication extends Application {  
          
        private List<Activity> activities = new ArrayList<Activity>();  
          
            public void addActivity(Activity activity) {  
                activities.add(activity);  
            }  
          
            @Override  
            public void onTerminate() {  
                super.onTerminate();  
                  
                for (Activity activity : activities) {  
                    activity.finish();  
                }  
                  
                onDestroy();  
                  
                System.exit(0);  
            }  
        }  
    然后在 Activity  onCreate 的时候来调用  addActivity (),有人可能想到这个Application需要在所有的 Activity  onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用  this.getApplication() 就可以了。
     
    最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。
     
    运行以上代码后,在LogCat 中会出现一行提示:
    Process  包名 (pid  xxxxx)  has died.  证明你的程序退出了。
  • 相关阅读:
    (转)Linux系统中sysctl命令详解 sysctl -p、sysctl -a、sysctl -w
    EM2 MP1 Vowel and Consonant Teacher:Ashley
    Phonics 自然拼读法 y,x,ch,sh,(voiced)th/ð/ ,(unvoiced) th/θ/ Teacher:Lamb
    java列表转成 int[] 的格式
    分类模型评估之ROC-AUC曲线和PRC曲线
    hive 抽样方法
    AUC理解
    Spark性能调优——基础篇
    scala 稀疏向量
    scala 建模
  • 原文地址:https://www.cnblogs.com/weizilong/p/3267785.html
Copyright © 2011-2022 走看看