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();
}
}
}
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();
}
}
}
相关文章推荐
- Android 应用程序Activity管理类:用于Activity管理和应用程序退出
- 应用程序Activity管理类:用于Activity管理和应用程序退出
- 通用于Activity管理和应用程序退出
- 用于Activity管理和应用程序退出
- Activity管理类:用于管理Activity和退出程序
- 用于Activity管理和应用程序退出
- 管理activity 完全退出应用程序
- AppManager 用于管理activity和退出机制
- Android 应用程序退出和Activity的管理
- Activity管理类,随时随地退出应用程序
- Activity管理和应用程序的退出(推荐使用stack)
- Activity管理和应用程序的退出(推荐使用stack)
- Android Activity管理类,管理Activity和退出应用
- android中Activity的管理及程序的退出
- android Activity管理类之退出程序
- 网络电台研究(2)自定义Application、BaseActivity管理统计数据、程序状态、应用程序完全退出
- 统一管理Activity,响应app退出
- [Activity生命周期] Android 完美退出应用程序
- 笔记:安卓完全退出应用程序出现闪退、返回上一个activity的问题
- android 完美退出APP的实例代码(管理activity)