您好,登錄后才能下訂單哦!
這篇文章主要介紹了android怎么判斷應(yīng)用是否已經(jīng)啟動(dòng),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
我就廢話不多說了,還是直接看代碼吧!
/** * 判斷應(yīng)用是否已經(jīng)啟動(dòng) * * @param context 上下文對象 * @param packageName 要判斷應(yīng)用的包名 * @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; }
補(bǔ)充知識:android判斷當(dāng)前應(yīng)用是否啟動(dòng)、app運(yùn)行狀態(tài)、某個(gè)界面是否在前臺工具類整理
來直接看代碼吧!
/** * 判斷當(dāng)前應(yīng)用是否啟動(dòng) * * @param context * @return */ public static boolean getCurrentTask(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //獲取當(dāng)前所有存活task的信息 List<RunningTaskInfo> appProcessInfos = activityManager.getRunningTasks(Integer.MAX_VALUE); //遍歷,若task的name與當(dāng)前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運(yùn)行狀態(tài) * * @param context 一個(gè)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 } } /** * 判斷某個(gè)界面是否在前臺 * * @param context * @param className 某個(gè)界面名稱 */ 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; }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“android怎么判斷應(yīng)用是否已經(jīng)啟動(dòng)”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。