`

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

阅读更多

获取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;
    }
分享到:
评论

相关推荐

    获取手机正在运行的app,以及当前前台正在运行的app(兼容android6.0)

    总的来说,获取Android设备上正在运行的APP以及当前前台APP涉及到Android权限管理和系统服务的使用。理解这些概念并正确实现,可以为开发者提供宝贵的系统监控和分析能力。同时,随着Android版本的更新,开发者需要...

    Android中获取后台正在运行的应用列表

    在Android设备中,按Back键会将当前的Activity出栈销毁,而按HOME键却会将之隐藏到后台。如若有多个这样的程序这样操作,我们不知道后台到底有多少个正在运行的应用程序。此程序的目的就列举出后台正在运行的应用...

    Android 5.0系统以上获取运行进程demo

    一种可能的方法是利用`ActivityManager.RunningServiceInfo`获取正在运行的服务信息,或者使用`ActivityManager.RunningTaskInfo`获取前台任务的信息。这些方法虽然不能提供完整的进程列表,但可以帮助开发者了解其...

    Android 低版本和高版本获取后台运行进程

    在早期的Android版本中,开发者可以使用`ActivityManager`类的`getRunningTasks()`方法来获取当前设备上正在运行的任务(包括前台和后台进程)。这个方法返回一个`ActivityManager.RunningTaskInfo`的列表,每个`...

    android手机正在运行的服务

    了解如何获取并管理正在运行的服务对于优化应用性能和电池使用至关重要。 标题“android手机正在运行的服务”指的是在Android设备上查询并可能操作当前正在后台运行的所有服务。这通常涉及到系统级别的操作,可能...

    Android5.0 以上获取系统正在运行应用信息包

    在Android 5.0及以上版本,获取系统正在运行的应用信息包是一个相对复杂的过程,因为从这个版本开始,谷歌为了提高用户隐私和系统安全,对应用程序的权限管理进行了严格的限制。以下是一些关于如何在Android 5.0及...

    Android 显示所有的正在运行程序

    首先,我们需要理解Android的任务和活动生命周期。在Android中,一个应用程序可能包含多个活动(Activity),每个活动代表用户界面的一个状态或屏幕。当用户在不同应用之间切换时,Android会创建和管理一系列活动...

    Android中获取正在运行的应用程序ActivityManager的使用(二)

    本篇文章将深入探讨如何利用ActivityManager来获取正在运行的应用程序信息,这是Android开发中的一个重要知识点,对于理解和优化应用行为有着至关重要的作用。 首先,我们需要理解ActivityManager的核心职责。它...

    Android获取正在运行程序源码

    在Android应用开发中,了解如何获取正在运行程序的相关信息是一项重要的技能。这有助于开发者实现诸如监控系统状态、优化性能或创建自定义管理工具等功能。GetRun这个Demo项目就是专门为了展示如何实现这一功能而...

    Android获取正在运行程序并kill掉

    标题"Android获取正在运行程序并kill掉"涉及的关键知识点主要包括Android进程管理、系统权限、以及如何编程实现这个功能。以下将详细介绍这些内容。 首先,Android系统中的进程分为多个级别,如前台进程、可见进程...

    Android 获取运用服务

    总结,获取Android设备上正在运行的服务并进行展示,需要利用ActivityManager类及其提供的getRunningServices()方法,通过遍历返回的结果来获取服务信息,然后结合UI组件如ListView或RecyclerView展示这些信息。...

    10.0任务列表获取缩略图

    2. **任务数据获取**:通过`ActivityManager`的API获取最近运行的应用任务信息,包括应用的Activity实例和相关信息。 3. **缩略图生成**:利用`ActivityManager.RunningTaskInfo`类的thumbnail属性,获取应用的当前...

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

    在Android系统中,获取正在运行的任务和服务对于开发者来说有时是必要的,例如为了了解应用的运行状态或者优化性能。本文将详细介绍如何通过编程的方式获取这些信息。 首先,我们需要明白Android中的"任务"(Task)...

    Android 通过process进程信息拿到当期正在运行的APP包名

    在给定的标题"Android通过process进程信息拿到当期正在运行的APP包名"中,提到的关键点在于获取“栈顶应用包名”,这意味着我们要找到用户当前交互的那个应用。在Android中,栈顶应用通常指的是拥有焦点或用户界面...

    android实现获取正在运行的应用程序

    在Android平台上,获取正在运行的应用程序是开发过程中的一项常见需求,这可以帮助用户了解手机资源的使用情况或实现特定的功能,比如任务管理器。在提供的标题和描述中,开发者提到为了在framework层添加此功能,...

    Android中获取系统内存信息以及进程信息

    或者根据运行的进程和服务来分析应用的资源消耗。 总的来说,`ActivityManager`是Android系统管理的核心工具之一,它允许开发者深入理解系统状态,从而更好地控制和优化应用程序的运行。通过对内存信息和进程信息的...

    获取android手机信息

    在Android平台上,获取手机硬件信息是一项常见的任务,这对于开发者来说尤其重要,因为它可以帮助他们了解设备的特性,并根据这些信息优化应用程序。以下是一些关键的知识点,涵盖了如何在Android中获取描述中提到的...

Global site tag (gtag.js) - Google Analytics