android判斷應(yīng)用是否已經(jīng)啟動(dòng)的實(shí)例
我就廢話不多說了,還是直接看代碼吧!
/** * 判斷應(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); 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ǔ)充知識(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的信息List<RunningTaskInfo> appProcessInfos = activityManager.getRunningTasks(Integer.MAX_VALUE);//遍歷,若task的name與當(dāng)前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運(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<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è)界面是否在前臺(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<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判斷應(yīng)用是否已經(jīng)啟動(dòng)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明2. CSS hack用法案例詳解3. ASP 處理JSON數(shù)據(jù)的實(shí)現(xiàn)代碼4. PHP設(shè)計(jì)模式中工廠模式深入詳解5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. asp中response.write("中文")或者js中文亂碼問題7. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過程(親測(cè)可用)9. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向10. jsp網(wǎng)頁實(shí)現(xiàn)貪吃蛇小游戲
