博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习-使用单例模式实现一键退出APP
阅读量:4610 次
发布时间:2019-06-09

本文共 1346 字,大约阅读时间需要 4 分钟。

我们都知道Activity的finish方法只能退出当前的Activity,但如果我们希望一键退出所有已经create的Activity又该如何做呢?很简单,我们通过单例模式设计了一个管理当前活动的Activity的类,名叫MyActivityManager,代码如下:

import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
/**
 * Activity管理类
 * 1、activity():保存Activity
 * 2、exit():关闭所有保存的Activity
 * @author 段宏昌
 *
 */
public class MyActivityManager extends Application {
    /**
     * Activity列表
     */
    private List<Activity> activityList = new LinkedList<Activity>();
    
    /**
     * 全局唯一实例
     */
    private static MyActivityManager instance;
    
    /**
     * 该类采用单例模式,不能实例化
     */
    private MyActivityManager()
    {
    }
    /**
     * 获取类实例对象
     * @return    MyActivityManager
     */
    public static MyActivityManager getInstance() {
        if (null == instance) {
            instance = new MyActivityManager();            
        }
        return instance;
    }
    /**
     * 保存Activity到现有列表中
     * @param activity
     */
    public void addActivity(Activity activity) {
        activityList.add(activity);
    }
    /**
     * 关闭保存的Activity
     */
    public void exit() {
        if(activityList!=null)
        {
            Activity activity;
            
            for (int i=0; i<activityList.size(); i++) {            
                activity = activityList.get(i);
                
                if(activity!=null)
                {
                    if(!activity.isFinishing())
                    {
                        activity.finish();
                    }
                    
                    activity = null;
                }
                
                activityList.remove(i);                
                i–;
            }
        }
    }
}
在每个Activity的onCreate方法中调用MyActivityManager的addActivity方法,然后在需要使用一键退出的地方调用MyActivityManager中的exit方法即可。

转载于:https://www.cnblogs.com/eustoma/archive/2012/01/20/2415780.html

你可能感兴趣的文章
关于微信公众平台测试号配置失败的问题
查看>>
【NOIP2001】统计单词个数
查看>>
linux常用端口
查看>>
异常处理
查看>>
/proc/uptime详解
查看>>
如何建立合适的索引?
查看>>
acwing 651. 逛画展
查看>>
(待完成)qbxt2019.05 总结12 - 趣味题目 鹰蛋
查看>>
[2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
查看>>
关于WPF程序只运行一个实例的方法
查看>>
局域网内访问机器时出现“未授予在次计算机上的请求登陆类型”
查看>>
Bogart BogartAutoCode.vb
查看>>
hdu - 2266 How Many Equations Can You Find (简单dfs)
查看>>
UIView属性
查看>>
将博客搬至CSDN
查看>>
远程服务器git搭建
查看>>
20145325张梓靖 实验三 "敏捷开发与XP实践"
查看>>
JavaScript面试题
查看>>
[转帖]架构师眼中的高并发架构
查看>>
ios的一些开源资源
查看>>