App退出后,退出所有的Activity

转载 2016年05月31日 20:50:52

在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)、android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序的效果,这是因为调用finish()、System.exit(0)、android.os.Process.killProcess(android.os.Process.myPid())只能杀死当前的activity,并不能杀死所有的activity,为了完美达到此效果,接下来通过一个案例实现:

            

一、使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!

MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作

package com.hrtx.dd.activity;
 
import java.util.LinkedList;
import java.util.List;
 
import android.app.Activity;
import android.app.Application;
 
public class MyApplication extends Application {
    private List<Activity> activitys = null;
    private static MyApplication instance;
 
    private MyApplication() {
        activitys = new LinkedList<Activity>();
    }
 
    /**
     * 单例模式中获取唯一的MyApplication实例
     *
     * @return
     */
    public static MyApplication getInstance() {
        if (null == instance) {
            instance = new MyApplication();
        }
        return instance;
 
    }
 
    // 添加Activity到容器中
    public void addActivity(Activity activity) {
        if (activitys != null && activitys.size() > 0) {
            if(!activitys.contains(activity)){
                activitys.add(activity);
            }
        }else{
            activitys.add(activity);
        }
         
    }
 
    // 遍历所有Activity并finish
    public void exit() {
        if (activitys != null && activitys.size() > 0) {
            for (Activity activity : activitys) {
                activity.finish();
            }
        }
        System.exit(0);
    }
 
}

                 

二、在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中

MyApplication.getInstance().addActivity(this);

                

三、在需要结束所有Activity的时候调用exit方法

MyApplication.getInstance().exit(); 

 

Android 一次性退出所有Activity

private void backToInit() { Intent startMain = new Intent(Intent.ACTION_MAIN); s...
  • zhuzhiqiang_zhu
  • zhuzhiqiang_zhu
  • 2016年03月14日 15:29
  • 536

退出所有的activity

public class SysApplication extends Application { //运用list来保存们每一个activity是关键 private Lis...
  • ljp345775
  • ljp345775
  • 2017年07月21日 16:43
  • 63

退出所有的Activity

定义一个类收集和finish所有的activitypublic class ActivityCollect{List list = new ArrayList();public static voi...
  • hdl03
  • hdl03
  • 2015年04月14日 20:16
  • 181

监听返回键并退出所有Activity示例

下面给出3个简单的Activity,并在它们之间跳转,如果想点击某个Activity的返回键时就退出所有Activity,就只需监听该Activity的返回键即可。所有Activity都存放在一个集合...
  • u010142437
  • u010142437
  • 2013年10月03日 00:50
  • 5359

android实现退出时关闭所有activity

来自郭霖《第一行代码》 1、新建ActivityCollector类,代码如下: public static List activities = new ArrayList(); pu...
  • u013527937
  • u013527937
  • 2016年07月20日 10:31
  • 542

退出APP时清空栈里所有activity

退出APP时清空栈里所有activity一、Intent方式 辅助activity,退出时指明跳转到改Activity,启动后立即结束 /** - 退出app时清空栈里的所有activity,辅助a...
  • phomel
  • phomel
  • 2016年11月03日 10:29
  • 903

Activity之间的跳转及销毁所有Activity的正确姿势

一、结束当前Activity的方法有4种://方法1 finish();//方法2 System.exit(0);//方法3 android.os.Process.killProcess(androi...
  • xkc_0706
  • xkc_0706
  • 2015年12月11日 19:25
  • 4759

一次退出所有的activity

网上有很多方法,有些弄的太麻烦了.  注意:那个activityManager 的方法在sdk2.1后就不能用了,不要使用那个方法。   方法:          1.新建一个数据类,定义一...
  • murongyeye
  • murongyeye
  • 2013年02月20日 14:13
  • 174

Android退出所有的Activity

在Android退出所有的应用程序中,如果需要退出Activity,但是保留Service,这个时候可以只需要保存所有的Activity,然后逐一退出,但是保留Service仍然在活动。 p...
  • goodspringin
  • goodspringin
  • 2013年07月23日 00:31
  • 519

Android 退出所有的Activity

/** * Created by SunPengCheng * on 2017/8/24 * 邮箱:13027699936@163.com. */ public class BaseAppl...
  • m0_37177456
  • m0_37177456
  • 2017年08月25日 10:49
  • 70
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:App退出后,退出所有的Activity
举报原因:
原因补充:

(最多只允许输入30个字)