获取Android正在运行的任务和服务

一、检测某ActivityUpdate是否在当前Task的栈顶

public static boolean isTopActivy(String cmdName, Context context)    {ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(Integer.MAX_VALUE);        String cmpNameTemp = null;        if (null != runningTaskInfos)        {            cmpNameTemp = (runningTaskInfos.get(0).topActivity).toString();        }        if (null == cmpNameTemp)        {            return false;        }                return cmpNameTemp.equals(cmdName);    }

二、判断Android应用是否在前台

public static boolean isAppOnForeground(Context context)    {ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        String packageName = context.getPackageName();List<RecentTaskInfo> appTask = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);                if (appTask == null)        {            return false;        }                if (appTask.get(0).baseIntent.toString().contains(packageName))        {            return true;        }        return false;    }

三、获取Android手机内安装的所有桌面

private static List<String> getAllTheLauncher(Context context)    {        List<String> names = null;        PackageManager pkgMgt = context.getPackageManager();        Intent it = new Intent(Intent.ACTION_MAIN);        it.addCategory(Intent.CATEGORY_HOME);        List<ResolveInfo> ra = pkgMgt.queryIntentActivities(it, 0);        if (ra.size() != 0)        {            names = new ArrayList<String>();        }        for (int i = 0; i < ra.size(); i++)        {            String packageName = ra.get(i).activityInfo.packageName;            names.add(packageName);        }        return names;    }

四、Android 判断程序前后台状态

public static boolean isLauncherRunnig(Context context)    {        boolean result = false;        List<String> names = getAllTheLauncher(context);ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningAppProcessInfo> appList = mActivityManager.getRunningAppProcesses();        for (RunningAppProcessInfo running : appList)        {            if (running.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)            {                for (int i = 0; i < names.size(); i++)                {                    if (names.get(i).equals(running.processName))                    {                        result = true;                        break;                    }                }            }        }        return result;    }

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. android--------根据文件路径使用File类获取文件相关信息
  3. android google地图开发总结——获取google地图开发密匙
  4. android中判断网络和WIFI是否连接
  5. 获取未安装的APK图标
  6. Android(安卓)获取设备信息
  7. android中判断网络和WIFI是否连接
  8. 2011.09.29(2)——— android 图片缩略图
  9. JS判断终端类型的几种方法

随机推荐

  1. pandaboard ES学习之旅——1 制作烧写SD
  2. Android(安卓)orm框架Sugar1.4源码(映射
  3. Android(安卓)Studio使用笔记
  4. [Android]使用全局变量传递数据
  5. 在Android项目中引入JsBridge时需要注意
  6. unity3D,PC、Android、IOS将内容复制到剪
  7. 获取系统电量
  8. Android(安卓)Fragment详解
  9. 画图轻量级
  10. react-native 手机拍照权限