這篇文章主要介紹了android怎么判斷應(yīng)用是否已經(jīng)啟動(dòng),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了靜樂免費(fèi)建站歡迎大家使用!
我就廢話不多說了,還是直接看代碼吧!
/** * 判斷應(yīng)用是否已經(jīng)啟動(dòng) * * @param context 上下文對(duì)象 * @param packageName 要判斷應(yīng)用的包名 * @return boolean */ public static boolean isAppAlive(Context context, String packageName) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ListprocessInfos = activityManager.getRunningAppProcesses(); for (int i = 0; i < processInfos.size(); i++) { if (processInfos.get(i).processName.equals(packageName)) { return true; } } return false; }
補(bǔ)充知識(shí):android判斷當(dāng)前應(yīng)用是否啟動(dòng)、app運(yùn)行狀態(tài)、某個(gè)界面是否在前臺(tái)工具類整理
來直接看代碼吧!
/** * 判斷當(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的信息 ListappProcessInfos = 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:前臺(tái) 2:后臺(tái) 0:不存在 */ public static int isAppAlive(Context context) { String packageName = PackageUtil.getAppProcessName(context); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List 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è)界面是否在前臺(tái) * * @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 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)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!