Android获取Activity(应用)的执行状态及其它信息[通俗易懂]

Android获取Activity(应用)的执行状态及其它信息

大家好,又见面了,我是全栈君。

检測某Activity是否在当前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;
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116351.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nginx-代理apache负载均衡

    Nginx-代理apache负载均衡一、什么是负载均衡        当一台服务器单位时间访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就容会崩掉。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。        我们可以建立多个服务器,组成一个服务器集群,当用户访问网站时,先访问中间服务器,再让这个中间服务器在服务器集群中选择一个压力

    2025年10月9日
    2
  • linux下安装tomcat7

    linux下安装tomcat7安装环境LinuxcenterOS6.5tomcat安装(apache-tomcat-7.0.73.tar.gz)Tomca下载地址:http://tomcat.apache.org/download-70.cgi下载后解压:tar-zxvfapache-tomcat-7.0.73.tar.gz建立软连接:ln-sapache-tomcat-7.0.73.tar.gztomcat7设

    2022年5月18日
    43
  • mysql配置环境变量(win 10)[通俗易懂]

    1、安装完mysql后就需要配置环境变量(win10)选择“我的电脑”,单击右键,选择“属性-&gt;高级-&gt;环境变量中的系统变量,对MYSQL_HOME、Path这2个系统变量分别设置如下相应的值(设置原则:如果存在相应的变量,直接对该变量进行编辑,注意只添加不删除;如果该变量不存在,则新建后再编辑。)这里由于没有于是就新建一个环境变量MYSQL_HOM MYSQL_H…

    2022年4月4日
    119
  • Java中高级工程师面试题及答案,Java面试题及答案汇总(二

    Java中高级工程师面试题及答案,Java面试题及答案汇总(二需要注意Jdk1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)到O(logn)24.说一下HashSet的实现原理?HashSet底层由HashMap实现HashSet的值存放于HashMap的key上HashMap的value统一为PRESENT25.ArrayList和LinkedList的区别是什么?最明显的区别是ArrrayList底层的数据结构是数组,支持随机访问,而Linke

    2022年5月11日
    40
  • 【更新】互联网公司可投之参考[通俗易懂]

    【更新】互联网公司可投之参考[通俗易懂]【更新】互联网公司可投之参考以下内容收集于网络资料,仅供参考。如有误请指正~,未经允许,禁止转载。不介意的话,放个自己的字节内推,投递链接https://jobs.toutiao.com/s/dp5bxEK,内推码:AJCWZR2北京公司上海公司广州公司深圳公司武汉公司杭州公司成都公司成都公司长沙公司…小伙伴们觉得有用的话可以关注点赞收藏,后面持续更新~以下内容收集于网络资料,仅供参考。如有误请指正~,未经允许,禁止转载。#目前已更新:北京、上海、广州、深圳、武汉、杭州、成都、南京、长沙…不介意的

    2022年5月14日
    69
  • 运行错误:Unable to instantiate activity ComponentInfo

    运行错误:Unable to instantiate activity ComponentInfo

    2021年9月7日
    191

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号