安卓一键退出App
1、安卓退出程序有几种方法
首先要实现两个步骤
- 退出当前所有的activity
- 结束当前APP的进程
2、怎么退出所有的Activity
百度找了很多的资源,网上使用的方法有很多中,我使用的是每当Activity创建的时候,都会进入一个工具栈内,进行存储
下面就来介绍怎么使用
步骤一:所有的Activity都要继承一个BaseActivity(名字自己取啦)
步骤二:写一个工具类,来管理Activity
工具类代码:
public class ScreenManagerUtil
{
private static Stack<Activity> activityStack;
private static ScreenManagerUtil instance;
private ScreenManagerUtil(){
}
public static ScreenManagerUtil getScreenManager(){
if(instance==null){
instance=new ScreenManagerUtil();
}
return instance;
}
//退出栈顶Activity
public void popActivity(Activity activity){
if(activity!=null){
// activity.finish();
activityStack.remove(activity);
activity=null;
}
}
//获得当前栈顶Activity
public Activity currentActivity(){
if(activityStack == null ||activityStack.empty()) {
return null;
}
return activityStack.lastElement();
}
//将当前Activity推入栈中
public void pushActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
//依次退出到 某 个 Activity
public void popAllActivityExceptOne(Class cls){
while(true){
Activity activity=currentActivity();
if(activity==null){
break;
}
if(activity.getClass().gequals(cls) ){
break;
}
activity.finish();
}
}
//退出栈中所有Activity
public void exit(){
while(true){
Activity activity=currentActivity();
if(activity==null){
System.exit(0);
break;
}
activity.finish();
popActivity(activity);
}
}
}
步骤三:使用改工具类,进行退出到所有的Activity
这样就退出所有的Activity了
需要注意的是
我之前使用过Process.killProcess(Process.myPid())和System.exit()
这两种方法,这两周方法只能退出到当前的Activity,对于非正常退出的Activity会进行重启,网上查的原有是因为Android os 认为APP是被意外终止的,所以会重新启动。如果有多个Activity就采用上述的办法,单个Activity就使用Process.killProcess(Process.myPid())和System.exit()。
版权声明:本文为weixin_43863463原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。