该类主要提供,activity,服务进程交互的相关信息
类中的一些方法主要用来调试或者查看信息为目的,它不应该用来影响你的APP正常运行,这些方法在方法及文档中被调用。
大多数开发者用不到该类方法,因为这里面大多方法针对特殊用例。但也有些方法广泛适用例如,isLowRamDevice()使您的应用程序能够检测它是否在低内存设备上运行,并相应地运行。clearApplicationUserData()适用于具有重置数据功能的应用程序。
在一些特殊用例中,app和他的任务堆栈交互,可以使用ActivityManager.AppTask和ActivityManager.RecentTaskInfo内部类。但事实上这些类只用于测试和调试。
此类的实例的使用必须使用Context.getSystemService(class)携带参数ActivityManaget.class或者使用Context.getSystemService(String) 携带参数Context.ACTIVIT_SERVISE。
内部类:
类名 | 说明 |
ActivityManager.AppTask | AppTask允许你管理应用内的任务 |
ActivityManager.MemoryInfo | 你可以用getMemoeyInfo(ActivityManager.MemoryInfo)检索可用内存信息 |
ActivityManager.ProgressErrorStateInfo | 你可以检索一下任何处于错误状态的进程的信息 |
ActivityManager.RunningAppProgressInfo | 你可以检出正在运行的进程的信息 |
ActivityManager.RunningServiceInfo | 你可以检索当前运行在系统中的特定服务的信息 |
ActivityManager.RunningTaskInfo | 你可以检索当前运行在系统中的特定任务的信息 |
ActivityManager.TaskDescription | 你可以在最近的任务列表中设置和检索但前activity信息 |
常量:
名称 | 类型 | 描述 | 版本 |
ACTION_REPORT_HEAP_LIMIT | String | 操作应用可以实现处理来自setWatchHeapLimit(long)的报告 | add in API level 23 |
LOCK_TASK_MODE_LOCKED | int | 锁定全部处于活动的任务 | add in API level 23 |
LOCK_TASK_MODE_NONE | int | 锁定未激活的任务模式 | add in API level 23 |
LOCK_TASK_MODE_PINNED | int | 应用固定模式处于活动状态 | add in API level 23 |
META_HOME_ALTERENATE | String | 用home的<mate-data>名称声明要卸载的程序包的活动,以替代声明的程序包 | add in API level 19 |
MOVE_TASK_NO_USER_ACTION | int | moveTaskToFornt(int,int)的标识:不要将此算作用户策动的操作,因此当前界面会收不到用户离开的提示 | add in API level 12 |
MOVE_TASK_WITH_HOME | int | moveTaskToFornt(int,int)的标识:随着任务一起移动的‘home’活动,因此它被定位在任务之后 | add in API level 11 |
RECENT_IGNORE_UNAVAILABLE | int | 提供一个列表 ,列表不包含当前对用户不可用的近期任务 | add in API level 11 |
RECENT_WITH_EXCLUDED | int | 用户是使用getRecentTasks(int,int):返回所有任务,即使有些任务设置了FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS标识 | add in API level 1 |
公共方法
名称 | 返回值 | 返回描述 | 描述 | 版本 |
addAppTask(Activity activity,Intent intent,ActivityManager.TaskDescription description,Bitmap thumbnail) | int | 返回心添加的任务id, 失败时返回-1, 失败的最可能原因是 没有更多的空间完成 更多任务 | 为应用添加一个新的ActivityManager.Task,他会创建一个最近的记录 并添加到所有现有最近记录的末尾 | add in API level 21 |
clearApplicationUserData() | boolean | 如果应用程序成 功请求清除程序数据 返回true | 允许程序从磁盘中删除自己的数据,相当于在设置ui中选择清除应用数据,它会清除所有与应用相关的动态包括私有数据以及存储在外部的私有数据,但不会卸载本身,也不会删除任何OBB文件,他也会清除已经授权的所有运行权限,通知和Uri网页授权 | add in API level 19 |
clearWatchHeepLimit() | void | 清除先前setWatchHeepLimit(long)设置的堆表限制 | add in API level 23 | |
dumpPackageState(FileDescriptor fd,String packageName) | void | 执行与给定应用包相关联的系统转存的各种相关状态,防范的执行会造成阻塞,所以不能放在ui线程,数据会写入给定的存在的文件描述。 请求DUMP权限 | add in API level 19 | |
getAppTaskThumbnailSize() | Size | 返回ActivityManager.AppTask,缩略图的尺寸,用于addAppTask()方法 | add in API level 21 | |
getAppTask() | List<ActivityManeger.Task> | 获取调用应用相关联的任务列表 | 19 | |
getDeviceConfigurationInfo() | ConfiguraTionInfo | 获取设备配置属性 | 3 | |
getLargeMemoryClass() | int | 当应用程序运行在一个大堆时返回当前设备近似的每个应用程序内存类,它是内存密闭型应用程序的可用空间。大多数应用程序不应需要这些内存而是应该保留getMemoryClass()的限制。返回值的单位是兆字节 ,他可能与内存寿险设备的getMemoryclass()值相同。又或者在有很多可用的RAM设备上会更大。 | 11 | |
getlauncherLargelIconDensity() | int | dp | 获取启动图首选密度 | 11 |
getLauncherLargelIconsize() | int | px | 11 | |
getLockTaskModeState() | int | 获取当前任务的送顶状态。返回值可能是:LOCK_TASK_NODE_NONE,LOCK_TASK_MODE_LOCKED,LOCK_TASK_MODE_PINNED。 | 23 | |
getMemoryClass() | int | 返回当前设备近似的每个应用程序内存类。它会给你一些想法在应该设置多少内存限制让你的应用程序在整个系统中更好的运行方面。返回值单位是兆字节,一般内存的安卓返回16,一些具备更高内存的设备会返回24或者更高的数字。 | 5 | |
getMemoryInfo
(ActivityManager.MemoryInfo
outInfo) | 1 | |||
getProcessMemoryInfo (int[] pids) pid:要检索内存进程的id | MemoryInfo[] | |||
getRecentTasks() Api21弃用 | ||||
getRunningAppProcesses () | List <ActivityManeger .RunningAppProgressInfo> | 返回Running AppProgressInfo列表,没有返回null | ||
getRunningServiceControlPanel (ComponentName service) | PendingIntent | 返回PendingIntent, 你可以开始为你指定的运行中的服务显示控制面板,如果服务没有控制面板,返回nul | ||
getRunningService() 在Api 26已经弃用 | ||||
getRunningTask() API 21弃用 |