android.app.ActivityManagerjava
这个类主要用来管理全部设备上的Activities。android
权限:android.permission.GET_TASKSapp
1.List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, int flags) ide
返回用户最近使用过的应用程序信息集合。第一个参数是最大数量,第二个参数在API11前只有ActivityManager.RECENT_WITH_EXCLUDED。这个方法之后可能会被废弃,谷歌推荐用来debug用。测试
(1) RecentTaskInfo类,主要有些字段ui
Intent baseIntent 获得能跳转到这个Task的Activity,即能经过这个Intent启动这个Intent指向的程序。this
int id 获得这个Task的标识,若是是-1,则标识这个程序没启动,其余数字表示启动了。spa
2.List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses()debug
返回设备上正在运行的程序的进程集合。rest
(1)RunningAppProcessInfo类,主要有些字段
int importance 这个字段的值若是为IMPORTANCE_FOREGROUND (100)时表示为前段运行的进程,为IMPORTANCE_BACKGROUND(400)表示后台运行。其值还有一些其余的。
int importanceReasonCode 对进程进行解释的字段,有3个值 REASON_UNKNOWN(0) 、REASON_PROVIDER_IN_USE(1)、REASON_SERVICE_IN_USE(2)。分别表示没缘由、程序中的content provider被其余程序使用、与前一个理由同样。
int importanceReasonPid 当 importanceReasonCode 的值不为0时这个字段表明1.2中其余程序的PID值,不然值为0。
ComponentName importanceReasonComponent 当 importanceReasonCode 中值不为0时,这个字段表明1.2中其余程序的 ComponentName,不然为null。
int pid 进程的PID值。
int uid user id.
String processName 进程名,实际等于包名(content provider免疫)。
String[] pkgList 程序内全部主包,这个测试出来,通常程序都只有一个元素,但系统自带的程序而且有content provider的有几个包。
3 List<ActivityManager.RunningTaskInfo> getRunningTasks(int maxNum)
返回正在运行中的程序,参数为返回的最大个数,返回的顺序为 最近打开的程序,即优先返回最新使用的程序。返回值可能为空。
(1)RunningTaskInfo类,主要提供字段
ComponentName baseActivity 表明登录的Activity的 ComponentName,便可以用这个返回值启动这个所表明的程序。
int id A unique identifier for this task.
int numActivities Number of activities in this task.
int numRunning Number of activities that are currently running (not stopped and persisted) in this task.
ComponentName topActivity 存在栈顶的Activity所表明的 ComponentName。用户能够用这个方法获得如今正在显示的Activity的 ComponentName。
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
4.void killBackgroundProcesses (String packageName)
杀死后台进程,参数为要被杀的程序的(主)包名。须要权限android.permission.KILL_BACKGROUND_PROCESSES。
5. List<ActivityManager.RunningServiceInfo> getRunningServices(int maxNum)
获得全部正在运行的service。
(1)RunningServiceInfo类,主要提供字段。
long activeSince 第一次启动这个service到如今所过的时间段。
int pid 进程的PID
int uid user id.
String process 进程名(包名?)。
long lastActivityTime 最后一次激活Service到如今的时间
ComponenName service 获得这个Service的组件名,就是能经过这个启动service
long restarting 这个字段的值若是不是0,那么如今这个service还没启动,将在返回值的时间段事后自启动。
6. void restartPackage (String packageName)
如今这个方法等于方法killBackgroundProcesses了,调用这个方法等于在调用方法killBackgroundProcesses.须要权限android.permission.RESTART_PACKAGES。