android判斷應(yīng)用是否已經(jīng)啟動(dòng)的實(shí)例
我就廢話不多說(shuō)了,還是直接看代碼吧!
/** * 判斷應(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)工具類整理
來(lá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. IntelliJ IDEA安裝插件的方法步驟2. 通過(guò)Django Admin+HttpRunner1.5.6實(shí)現(xiàn)簡(jiǎn)易接口測(cè)試平臺(tái)3. Docker 部署 Prometheus的安裝詳細(xì)教程4. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法5. idea重置默認(rèn)配置的方法步驟6. idea打開(kāi)多個(gè)窗口的操作方法7. idea設(shè)置代碼格式化的方法步驟8. idea給項(xiàng)目打war包的方法步驟9. IntelliJ IDEA調(diào)整字體大小的方法10. IntelliJ IDEA刪除類的方法步驟

網(wǎng)公網(wǎng)安備