android判斷應用是否已經啟動的例項
阿新 • • 發佈:2020-03-20
我就廢話不多說了,還是直接看程式碼吧!
/** * 判斷應用是否已經啟動 * * @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判斷當前應用是否啟動、app執行狀態、某個介面是否在前臺工具類整理
來直接看程式碼吧!
/** * 判斷當前應用是否啟動 * * @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判斷應用是否已經啟動的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。