获取屏幕上正在显示的activity
2010-10-25 20:42
260 查看
用过ActivityManager的童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。
那么,从里面我们可以发掘点什么出来吗?仔细看getRunningTasks的文档,里面说获取的是系统中"running"的所有task,"running"状态包括已经被系统冻结的task。而且返回的这个列表是按照顺序排列的,也就是说第一个肯定比第二个后运行。
getRunningTasks有个整型参数,表示返回列表的最大个数。那么,我们如果把1作为参数给进去,那么他返回的task就是当前运行的那个task,然后从task中获取到最顶层的activity,这个activity就是当前显示给用户的那个activity了。
Java代码
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
Log.d("", "pkg:"+cn.getPackageName());
Log.d("", "cls:"+cn.getClassName());
至于这个能做什么,嘿嘿,我相信你知道的。
相关文章推荐
- 获取屏幕上正在显示的activity
- 获取屏幕上正在显示的activity
- Android中获取当前正在显示的Activity
- 获取正在显示的activity名称
- 如何获取屏幕上正显示的activity
- 获取当前正在显示activity的包名
- 获取正在显示的activity名称
- android 获取当前屏幕显示的Activity
- android 中让activity全屏幕显示
- (转)Android: 显示UI的时候不中断正在运行的Activity(TYPE_SYSTEM_ALERT, TYPE_SYSTEM_OVERLAY)
- Android获取手机上安装的APP和正在显示的APP
- 获取当前正在运行的应用程序的包名以及入口activity
- Fragment获取本地照片显示之Activity 的ontActivityResult()
- 获取当前屏幕显示的视图控制器viewcontroller
- 获取当前显示的Activity
- 手机连不上wifi,一直显示正在获取ip地址
- 获取当前屏幕显示的viewcontroller
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- 更改dialog样式activity在屏幕中显示的位置
- Google map获取手机屏幕当前显示地图的范围