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判斷當前應用是否啟動、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,否則,返回falsefor (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判斷應用是否已經啟動的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
