您的位置:首页 > 其它

Activity管理类,用于Activity管理和应用程序退出

2016-09-05 16:41 323 查看
package com.example.daniel.myapplication.util;

import android.app.Activity;

import android.app.ActivityManager;

import android.content.Context;

import java.util.Stack;

/**

 * Created by daniel on 2016/8/31.

 * 应用程序Activity管理类:用于Activity管理和应用程序退出
 * 注:可在BaseActivity初始化中调用(AppManager.addActivity(this);)

* 继承BaseAcivity,在需要的时候调用对应的方法

 */

public class AppManager {

    private static Stack<Activity> activityStack = new Stack<Activity>();

    /**

     * 添加Activity到堆栈

     */

    public static void addActivity(Activity activity) {

        activityStack.push(activity);

    }

    /**

     * 获取当前Activity(最后一个压入的)

     */

    public static Activity currentActivity() {

        return activityStack.lastElement();

    }

    /**

     * 结束当前Activity(堆栈中最后一个压入的)

     */

    public static void finishCurrentActivity() {

        Activity activity = activityStack.pop();

        activity.finish();

    }

    /**

     * 结束指定Activity

     *

     * @param activity

     */

    public static void finishActivity(Activity activity) {

        if (activity != null) {

            activityStack.remove(activity);

            if (!activity.isFinishing()) {

                activity.finish();

            }

        }

    }

    /**

     * 结束指定类名的Activity

     *

     * @param cls

     */

    public static void finishActivity(Class<?> cls) {

        for (Activity activity : activityStack) {

            if (activity.getClass().equals(cls)) {

                finishActivity(activity);

            }

        }

    }

    /**

     * 结束所有Activity

     */

    public static void finishAllActivity() {

        for (Activity activity : activityStack) {

            if (activity != null) {

                activity.finish();

            }

        }

        activityStack.clear();

    }

    /**

     * 退出应用程序

     *

     * @param context

     */

    public static void AppExit(Context context) {

        try {

            finishAllActivity();

            ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

            manager.killBackgroundProcesses(context.getPackageName());

            System.exit(0);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Activity管理类