获取当前显示的activity
发布日期:2021-07-29 10:44:30 浏览次数:32 分类:技术文章

本文共 578 字,大约阅读时间需要 1 分钟。

用过ActivityManager的童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。 


那么,从里面我们可以发掘点什么出来吗? 


仔细看getRunningTasks的文档,里面说获取的是系统中"running"的所有task,"running"状态包括已经被系统冻结的task。而且返回的这个列表是按照顺序排列的,也就是说第一个肯定比第二个后运行。 


getRunningTasks有个整型参数,表示返回列表的最大个数。那么,我们如果把1作为参数给进去,那么他返回的task就是当前运行的那个task,然后从task中获取到最顶层的activity,这个activity就是当前显示给用户的那个activity了。 


ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

ComponentName cn = am.getRunningTasks(1).get(0).topActivity;

Log.d("", "pkg:"+cn.getPackageName());

Log.d("", "cls:"+cn.getClassName()); 


至于这个能做什么,嘿嘿,我相信你知道的。

转载地址:https://blog.csdn.net/thinkinwm/article/details/9302121 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android 滑动效果入门篇(二)—— Gallery
下一篇:Android 滑动效果入门篇(一)—— ViewFlipper

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月01日 09时20分41秒