因为最近在做一个关于获取任务栈列表的功能,所以需要学习了解ActivityManager和RecentTaskInfo类,就写个文章记录一下。
首先,阅读官方文档关于这两部分的api介绍(ActivityManager、RecentTaskInfo)
一、ActivityManager部分api解读:
1.ActivityManager继承自Object对象,主要是对application中的activity、service和process的交互管理。他的初始化方法为使用Context.getSystemService(Class) 并申明ActivityManager.class类;或者使用Context.getSystemService(String),String申明为Context.ACTIVITY_SERVICE.
这里可以看文档截图,如图:
代码写法,例如:
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
关于Activity的管理,我们要知道它是通过Task stack(任务栈)的方式来管理的,比如对于一个task中的activity,可以通过内部类AppTask的方式来管理。AppTask主要是用来进行对于一个app的activity的管理,而对于多个app的activity的记录,则要通过内部类RecentTaskInfo类来实现。
2.Nested Classes总览:
ActivityManager.AppTask: 管理你自己application的任务。
ActivityManager.MemoryInfo:管理可用内存的类,初始化使用方法 getMemoryInfo(ActivityManager.MemoryInfo)