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はアプリケーションが既に起動されているかどうかを判断しました。小編集は皆さんに全部の内容を共有しています。参考にしていただければと思います。よろしくお願いします。