用于Activity管理和应用程序退出
2016-06-10 09:27
393 查看
;
import android.app.Activity;
import android.content.Context;
import java.util.Stack;
/**
* 应用程序Activity管理类:用于Activity管理和应用程序退出
*/
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager(){}
/**
* 单一实例
*/
public static AppManager getAppManager(){
if(instance==null){
instance=new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity){
if(activity!=null){
activityStack.remove(activity);
activity.finish();
activity=null;
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity(){
for (int i = 0, size = activityStack.size(); i < size; i++){
if (null != activityStack.get(i)){
Activity activity = activityStack.get(i);
if (!activity.isFinishing()) {
activity.finish();
}
}
}
activityStack.clear();
}
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
// 杀死该应用进程
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
} catch (Exception e) {
}
}
//移除指定的Activity
public void removeActivity(Activity activity){
if(activity!=null){
activityStack.remove(activity);
}
}
}
import android.app.Activity;
import android.content.Context;
import java.util.Stack;
/**
* 应用程序Activity管理类:用于Activity管理和应用程序退出
*/
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager(){}
/**
* 单一实例
*/
public static AppManager getAppManager(){
if(instance==null){
instance=new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity){
if(activity!=null){
activityStack.remove(activity);
activity.finish();
activity=null;
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity(){
for (int i = 0, size = activityStack.size(); i < size; i++){
if (null != activityStack.get(i)){
Activity activity = activityStack.get(i);
if (!activity.isFinishing()) {
activity.finish();
}
}
}
activityStack.clear();
}
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
// 杀死该应用进程
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
} catch (Exception e) {
}
}
//移除指定的Activity
public void removeActivity(Activity activity){
if(activity!=null){
activityStack.remove(activity);
}
}
}
相关文章推荐
- 缓存类,类似与sharedpreference
- 设计模式:(2)抽象工厂(Abstract Factory)
- java可视化编程
- 执行器中执行任务并返回结果
- css:float之清浮动
- Flash基础知识
- QT编程中的-qws
- Docker+Kubernetes linux x64 Centos7 安装
- 第七届ACM山东省赛-H Memory Leak
- 剑指offer(四十七)之平衡二叉树
- 【整理】七大查找算法
- 摘抄某女同学的博客,因为是博客园的没法转载,只好搬运,自愧不如
- Zap[Poi2007][bzoj1101]
- 图片缓存工具类
- 【整理】七大查找算法
- 教你搞定Android自定义View
- spark 1.5、hadoop 2.7 集群环境搭建
- 【BZOJ4580】[Usaco2016 Open]248【区间DP】【或 贪心】
- Invert Binary Tree
- Error opening framebuffer device /dev/fb0