Android判定アプリケーションが既に起動されているかどうかの例


私は余計なことを言わないで、コードを直接見ます。

 /**
 *           
 *
 * @param context        
 * @param packageName         
 * @return boolean
 */
public static boolean isAppAlive(Context context, String packageName) {
  ActivityManager activityManager =
      (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
  List<ActivityManager.RunningAppProcessInfo> processInfos
      = activityManager.getRunningAppProcesses();
  for (int i = 0; i < processInfos.size(); i++) {
    if (processInfos.get(i).processName.equals(packageName)) {
        return true;
    }
  }

  return false;
}
追加知識:androidは現在のアプリケーションが起動されているかどうかを判断します。アプリの動作状態、あるインターフェースはフロントツール類で整理されていますか?
コードを直接見に来てください。 

/**
 *           
 *
 * @param context
 * @return
 */
public static boolean getCurrentTask(Context context) {
	ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
	//        task   
	List<RunningTaskInfo> appProcessInfos = activityManager.getRunningTasks(Integer.MAX_VALUE);
	//  , task name   task name  ,   true,  ,  false
	for (RunningTaskInfo process : appProcessInfos) {
		if (process.baseActivity.getPackageName().equals(context.getPackageName())
				|| process.topActivity.getPackageName().equals(context.getPackageName())) {
			return true;
		}
	}
	return false;
}
 
/**
 *   app    
 *
 * @param context   context
 * @return int 1:   2:   0:   
 */
public static int isAppAlive(Context context) {
	String packageName = PackageUtil.getAppProcessName(context);
	ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
	List<ActivityManager.RunningTaskInfo> listInfos = activityManager.getRunningTasks(20);
	//          
	if (listInfos.get(0).topActivity.getPackageName().equals(packageName)) {
		return 1;
	} else {
		//          
		for (ActivityManager.RunningTaskInfo info : listInfos) {
			if (info.topActivity.getPackageName().equals(packageName)) {
				return 2;
			}
		}
		return 0;//      ,  0
	}
}
 
 
/**
 *            
 *
 * @param context
 * @param className       
 */
public static boolean isActivityForeground(Context context, String className) {
	if (context == null || TextUtils.isEmpty(className)) {
		return false;
	}
	ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
	List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(1);
	if (list != null && list.size() > 0) {
		ComponentName cpn = list.get(0).topActivity;
		if (className.equals(cpn.getClassName())) {
			return true;
		}
	}
	return false;
}
以上のandroidはアプリケーションが既に起動されているかどうかを判断しました。小編集は皆さんに全部の内容を共有しています。参考にしていただければと思います。よろしくお願いします。