zoukankan      html  css  js  c++  java
  • Android 编程下 Activity 的创建和应用退出时的销毁

    为了确保对应用中 Activity 的创建和销毁状态进行控制,所以就需要一个全局的变量来记录和销毁这些 Activity。这里的大概思路是写一个类继承 Application,并使获取该 Application 的实体为单例模式,在新的 Activity 被创建时在对应 Activity 的 onCreate 方法中将自己存入 Application 的集合中,然后在应用退出时将 Application 存有的 Activity 逐个进行销毁即可完全退出应用。代码如下:

    package cn.sunzn.app;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.Activity;
    import android.app.Application;
    
    public class AgentApp extends Application {
        private List<Activity> activities = new ArrayList<Activity>();
        private static AgentApp instance;
    
        private AgentApp() {
    
        }
    
        /**
         * 单例模式中获取唯一的 Application
         */
        public static AgentApp getInstance() {
            if (null == instance) {
                instance = new AgentApp();
            }
            return instance;
        }
    
        /**
         * 存放 Activity 到 List 中
         */
        public void addActivity(Activity activity) {
            activities.add(activity);
        }
    
        /**
         * 遍历存放在 List 中的 Activity 并退出
         */
        public void onTerminate() {
            super.onTerminate();
            for (Activity activity : activities) {
                activity.finish();
                activities.remove(activity);
            }
            android.os.Process.killProcess(android.os.Process.myPid());
        }
    }

    然后在每个 Acitivity 的 onCreate 方法中添加如下代码:

    AgentApp.getInstance().addActivity(this);

    最后在你要退出应用的界面执行如下的代码:

    AgentApp.getInstance().onTerminate();

    通过将 Activity 纳入 Application 对所维护集合的管理,即可达到完美退出应用的效果。

  • 相关阅读:
    AcWing 1135. 新年好 图论 枚举
    uva 10196 将军 模拟
    LeetCode 120. 三角形最小路径和 dp
    LeetCode 350. 两个数组的交集 II 哈希
    LeetCode 174. 地下城游戏 dp
    LeetCode 面试题 16.11.. 跳水板 模拟
    LeetCode 112. 路径总和 递归 树的遍历
    AcWing 1129. 热浪 spfa
    Thymeleaf Javascript 取值
    Thymeleaf Javascript 取值
  • 原文地址:https://www.cnblogs.com/sunzn/p/3281137.html
Copyright © 2011-2022 走看看