摘要:本文将带你了解Android应用开发Android 结束所有Activity通用方法,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android 结束所有Activity通用方法,希望本文对大家学Android有所帮助。
问题描述
做Android项目,退出程序时,有时不能退出所有的activity,这时我们就需要在退出时,关闭所有的activity。
自定义一个Activity 栈(通用方法)。利用一个单例模式的Activity栈来存放并管理所有Activity。并提供退出所有Activity的方法。
1.自定义一个Activity 栈方法(通用方法)
package com.project.test;
import android.app.Activity;
import java.util.LinkedList;
import java.util.List;
/**
* Author:AND
* Time:2018/3/16.
* Email:2911743255@qq.com
* Description:用于处理退出程序时可以退出所有的activity,而编写的通用类
* Detail:
*/
public class ActivityManager {
private List activityList = new LinkedList();
private static ActivityManager instance;
private ActivityManager() {
}
/**
* 单例模式中获取唯一的MyApplication实例
*
* @return
*/
public static ActivityManager getInstance() {
if (null == instance) {
instance = new ActivityManager();
}
return instance;
}
/**
* 添加Activity到容器中
*
* @param activity
*/
public void addActivity(Activity activity) {
activityList.add(activity);
}
/**
* 移除一个activity
*
* @param activity
*/
public void deleteActivity(Activity activity) {
if (activityList != null && activityList.size() > 0) {
if (activity != null) {
activity.finish();
activityList.remove(activity);
activity = null;
}
}
}
/**
* 遍历所有Activity并finish
*/
public void exit() {
for (Activity activity : activityList) {
activity.finish();
}
System.exit(0);
}
}
2.更加全面的堆栈管理类
/**
* Author:AND
* Time:2018/3/16.
* Email:2911743255@qq.com
* Description: activity堆栈管理
* Detail:
*/
public class ActivityStack
{
private static ActivityStack mSingleInstance;
private Stack mActicityStack;
private ActivityStack()
{
mActicityStack = new Stack();
}
public static ActivityStack getInstance()
{
if (null == mSingleInstance)
{
mSingleInstance = new ActivityStack();
}
return mSingleInstance;
}
public Stack getStack()
{
return mActicityStack;
}
/**
* 入栈
*
* @author blue
*/
public void addActivity(Activity activity)
{
mActicityStack.push(activity);
}
/**
* 出栈
*
* @author blue
*/
public void removeActivity(Activity activity)
{
mActicityStack.remove(activity);
}
/**
* 彻底退出
*
* @author blue
*/
public void finishAllActivity()
{
Activity activity;
while (!mActicityStack.empty())
{
activity = mActicityStack.pop();
if (activity != null)
activity.finish();
}
}
/**
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号