Android学习-使用单例模式实现一键退出APP
2012-01-20 14:53
666 查看
http://www.ilingxi.com/blog/duanhongchang/?p=72
我们都知道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方法即可。
我们都知道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方法即可。
相关文章推荐
- Android学习-使用单例模式实现一键退出APP
- Android学习-使用单例模式实现一键退出APP
- Android 系列:单例模式实现一键退出APP
- Android学习-使用单例模式实现一键…
- Android小技巧: 这里涵盖了所有实现 “一键退出 App” 的方法
- Android使用单例模式实现退出应用程序
- Android 小技巧: 这里涵盖了所有实现 “一键退出 App” 的方法
- android学习—— 简单的实现 android 退出app 的功能, 非 restartPackage
- Android客户端之“微服私访”App的系统学习(五)使用Picasso实现轮播图以及使用自定义View实现个人中心页面
- 从今天开始学习iOS开发(iOS 7版)--实现一款App之使用设计模式
- 【Android开源项目解析】QQ“一键下班”功能实现解析——学习Path及贝塞尔曲线的基本使用
- Android客户端之“微服私访”App的系统学习(四)使用ViewPager+Fragment实现Tab
- AngularJS学习笔记--使用angular.extend()实现工厂模式
- Android 实现切换主题皮肤功能(类似于众多app中的 夜间模式,主题包等)
- SSH框架实现返回json数据,并使用android app进行访问
- Android使用局和数据实现天气项目-android学习之旅(十二)
- 使用Event Bus模式解耦Android App组件间通信
- Android开发ViewPager和Fragment结合使用实现新闻类app基本框架(一)
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果
- 详解Android更改APP语言模式的实现过程