在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,并且容易理解、易于操作,非常不错!

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();


更多相关文章

  1. Android(安卓)Studio中如何解决重复依赖导致的app:transformClas
  2. Android常见的几种RuntimeException
  3. 手机锁屏后再解锁保存activity状态
  4. 使用ImageSpan图标不截断的方法
  5. Android(安卓)进阶——Framework 核心四大组件之跨进程共享组件C
  6. Gradle Error: Connection timed out 无法获取远程依赖解决方法(2
  7. Activity中使用AIDL让Service与Activity通信
  8. Android中继承RadioButton后,点击不能选中
  9. 个人修改机智云apk之出现couldn't find "libSDKLog.so"错误导致

随机推荐

  1. 关于Android混淆的开源框架Mess的学习与
  2. Android如何自定义视图属性总结
  3. android 异常错误积累
  4. Problems of Android NDK
  5. Android APP 自定义水印(kotlin)
  6. Android 删除aar包中的jar包解决Duplicat
  7. Android下Multiple markers at this line
  8. android studio 配置签名
  9. android判断指定时间是否是当前时间
  10. 从Java类加载初始化到Android热修复