您的位置:首页 > 其它

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

2017-03-20 18:13 423 查看
工具类

package org.lmw.tools.kd.tools;

import java.util.List;
import java.util.Stack;

import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager.NameNotFoundException;

/**
* 应用程序Activity管理类:用于Activity管理和应用程序退出
*
*/
public class AppManager {

private static Stack<Activity> activityStack;
private static AppManager instance;

private AppManager() {
}

/**
* 单一实例
*/
public static AppManager getAppManager() {
if (instance == null) {
instance = new AppManager();
}
return instance;
}

/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}

/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity() {
Activity activity = activityStack.lastElement();
return activity;
}

/**
* 结束当前Activity(堆栈中最后一个压入的)
*/
public void finishActivity() {
Activity activity = activityStack.lastElement();
finishActivity(activity);
}

/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
activity = null;
}
}

/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
finishActivity(activity);
}
}
}

/**
* 结束所有Activity
*/
public void finishAllActivity() {
for (int i = 0, size = activityStack.size(); i < size; i++) {
if (null != activityStack.get(i)) {
activityStack.get(i).finish();
}
}
activityStack.clear();
}

/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityMgr = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.restartPackage(context.getPackageName());
System.exit(0);
} catch (Exception e) {
}
}

/**
* 检测安装
*/
public static boolean checkApp(Context c, String packageName,int versionCode) {
// 检测当前包名的应用是否安装,检测当前包名的当前版本的应用是否安装
PackageInfo packageInfo = null;
try {
packageInfo = c.getPackageManager().getPackageInfo(packageName, 0);
if (packageInfo.versionCode == versionCode) {
return true;
}
} catch (NameNotFoundException e) {
return false;
}
return false;
}
/**
* 解析包名下的MainActivity启动路径
*/
public static String getMainClass(Context c,String packageName){
if(!packageName.equals("")){
String mainClassName="";

Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(packageName);
List<ResolveInfo> activitys = c.getPackageManager().queryIntentActivities(resolveIntent, 0);
ResolveInfo ri = activitys.iterator().next();
if (ri != null) {
mainClassName = ri.activityInfo.name;
}
return mainClassName;
}
return "";
}

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