Android退出时退出所有Activity的通用类,ActivityManager

做Android项目,退出程序时,有时不能退出所有的activity,这时我们就需要在退出时,关闭所有的activity。思路:当activity创建的时候把当前的Activity对象存放起来,等到退出的时候,关闭所有的Activity。为此,写了一个MyApplication类,用于存放所有的Activity。代码如下:

import java.util.LinkedList;
import java.util.List;

import android.app.Activity;
/**
 * 用于处理退出程序时可以退出所有的activity,而编写的通用类
 * @author duanyanrui
 * @date 2012-9-9
 *
 */
public class ActivityManager {

	private List<Activity> activityList = new LinkedList<Activity>();
	private static ActivityManager instance;

	private ActivityManager() {
	}

	// 单例模式中获取唯一的MyApplication实例
	public static ActivityManager getInstance() {
		if (null == instance) {
			instance = new ActivityManager();
		}
		return instance;
	}

	// 添加Activity到容器中
	public void addActivity(Activity activity) {
		activityList.add(activity);
	}

	// 遍历所有Activity并finish
	public void exit() {
		for (Activity activity : activityList) {
			activity.finish();
		}
		System.exit(0);
	}
}

用法:

在Activity的oncreat方法里面加上ActivityManager.getInstance().addActivity(this);

退出时调用:ActivityManager.getInstance().exit();

时间: 2024-08-03 14:33:05

Android退出时退出所有Activity的通用类,ActivityManager的相关文章

Android 编程下 Activity 的创建和应用退出时的销毁

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

Android设置Activity启动和退出时的动画

业务开发时遇到的一个小特技,要求实现Activity启动时自下向上弹出,退出时自上向下退出. 此处不关注启动和退出时其他Activity的动画效果,实现方法有两种: 1.代码方式,通过Activity的overridePendingTransition接口, 即在startActivity时调用overridePendingTransition(R.anim.push_bottom_in, 0) 在finish时调用overridePendingTransition(0, R.anim.push

Android程序中有多个Activity时的可全部退出方法

下面是代码.该方法的原理是用一个list记录每次启动的acitivity,在退出时候循环退出改list中保存的acitivity,这样就做到了所有的acitivity完美退出. 先写一个类继承Application package com.zhaoba.service; import java.util.ArrayList; import java.util.List;import android.app.Activity; import android.app.Application;publ

android开发完全退出activity

我们退出Activity可以调用:finish(),system(0),但是这些都只是单单退出单个Activity 也有人会说,直接把进程杀死,这些做法都不是很可取,其实我们翻看api可以发现,Activity 都是放入stack中管理,我们只要把stack清空了,不就完全退出了嘛.要对Activity的stack 管理,就需要了解launchMode的四种状态,这里就不多说了,自己看看api. 我们就利用android:launchMode="singleTop",当该Activit

Android 一次退出所有activity的方法

转自:http://bbs.51cto.com/thread-970933-1.html 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费点功夫了.我是在一个单例对象里面记录activity栈中activity的引用然后在需要退出时遍历一遍finish()掉就可以了.实现步骤如下:1.创建一个单例对象 package com.exit; import java.lang.ref.SoftReference;import java.ut

Android之完美退出方法

为什么要写这篇文章? 网上有很多种退出方法,可实际上很多方法都不通用(在某个版本下可用,到了另一个版本就不行),或者方法的实际效果根本就和其描述不符(也不知道那些发帖的人测没测试过). 但我们的需求又确实存在.在某些情况下,我们需要在应用中打开多个Activity,但如果仅仅使用finish()方法就不能在需要的时候达到一次性退出的效果,自己作为一个Android退出问题的受害者,通过良久思考和实际测试,找到了一个比较不错的,在2.1-2.2-2.3版本下都通用的完全退出方法(2.1版本也基本可

android使用广播退出应用程序

由于在(Widget或Service.BroadcastReceiver中)使用startActivity()方法启动activity时需使用FLAG_ACTIVITY_NEW_TASK flag,所以在BaseActivity中使用setresult标记退出时不能完全退出应用程序(只能关闭通过广播打开的activity以及之后打开的activity). 因此本文设计使用广播退出应用程序: 1.在退出事件中发送退出广播 Intent intent = new Intent(); intent.s

android 应用常见退出方法

对于初学者来讲,android应用的退出有时候挺让人头疼,下面简单总结几种常见的退出方法: 大的方向,退出思路无非就是将程序所有activity进行销毁,思路清晰了,就看使什么招了- 1.制造抛异常导致整个程序退出  2.将所有的activity放入到一个list中,然后在需要退出的时候,将所有的activity,finish掉  3.通过广播来完成退出功能 1.制造抛异常导致整个程序退出: 详见http://blog.csdn.net/liuhe688/article/details/6584

Android中完全退出当前应用系统

一.将统一管理Activity的类ActivityManager复制到工程里面. package com.jsmtr.www.Helper; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; public class ActivityManager extends Application { @SuppressWarnin