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刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)2. Spring注入Date類型的三種方法總結(jié)3. ASP基礎(chǔ)入門第二篇(ASP基礎(chǔ)知識(shí))4. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)5. ASP實(shí)現(xiàn)加法驗(yàn)證碼6. PHP session反序列化漏洞超詳細(xì)講解7. PHP設(shè)計(jì)模式中工廠模式深入詳解8. ASP基礎(chǔ)知識(shí)Command對(duì)象講解9. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享10. PHP循環(huán)與分支知識(shí)點(diǎn)梳理
