最近参考系统源代码,做了一个任务管理器。具体功能是获取用户的任务列表、活动图标、Activity的缩略图以及恢复任务、关闭任务。
完整的demo已上传到github,代码拙劣,将就看看:https://github.com/Ade8018/TaskManager
首先声明,任务管理器基本上的功能都会要求系统级权限。即你手中需要有系统签名文件。
以下代码在4.4.2及5.1.1系统上亲测可用。
一、获取任务列表
获取任务列表需要系统使用系统UIDandroid:sharedUserId="android.uid.system"及添加权限<uses-permission android:name="android.permission.GET_TASKS" />。
然后调用ActivityManager的getRecentTasks(MAX_TASK_COUNT,ActivityManager.RECENT_IGNORE_UNAVAILABLE)方法可以获取到任务列表。
示例:
public TaskList(ActivityManager am, PackageManager pm) {
if (am == null || pm == null)
throw new NullPointerException();
mAm = am;
mPm = pm;
mInfos = am.getRecentTasks(MAX_TASK_COUNT,
ActivityManager.RECENT_IGNORE_UNAVAILABLE);
dofilter();
}