`

程序退出时候 全部杀死activity

阅读更多

每一个程序都有个退出,就行每一次退出都会不干净一样。

想要退出时,全部杀死activity。不管是之前跳转多少次的,不管是多么难控制的activity。

试了几个方法,不行。然后找到大杀器:写一个类ActivityManager,自己控制把每一次intent的类,都加入到这个类当中的管理activity的对象里面,List<Activity> activities。然后在退出操作是finishAll()


1. 下面是ActivityManager类:

public class ActivityManager {

    private static List<Activity> activities = new ArrayList<Activity>();

    public static synchronized void addActivity(Activity activity) {
        activities.add(activity);
    }

    public static synchronized void removeActivity(Activity activity) {
        activities.remove(activity);
    }

    public static final synchronized List<Activity> getActivities() {
        return activities;
    }

    public static synchronized void finishAll() {
    try {
    for (Activity activity : activities) {
                if (!(activity.isChild() || activity.isFinishing()))
                    ((BaseActivity) activity).finishAll();
            }
            activities.clear();
} catch (Exception e) {
e.printStackTrace();
}
    }
}

2.在每个类启动的时候,都加上ActivityManager.addActivity(this);(当然我是共同使用一个基类,所以更加的好添加)

3.在退出操作中,添加ActivityManager.finishAll();就会完全的退出activity。

(方法较笨拙,希望指正)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics