android.app.ActivityManager

这个类主要用来管理全部设备上的Activities。

权限:android.permission.GET_TASKS

方法:| 返回类型     方法|

1.List<ActivityManager.RecentTaskInfo>       getRecentTasks(int maxNum, int flags)

返回用户近期使用过的应用程序信息集合。第一个參数是最大数量,第二个參数在API11前仅仅有ActivityManager.RECENT_WITH_EXCLUDED。这种方法以后可能会被废弃,谷歌推荐用来debug用。

(1) RecentTaskInfo类,主要有些字段

1.1 Intent      baseIntent   得到能跳转到这个Task的Activity,即能通过这个Intent启动这个Intent指向的程序。

1.2  int           id                    得到这个Task的标识,假设是-1,则标识这个程序没启动,其它数字表示启动了。

1.3  int           persistentId  任务的唯一值。

1.4  Intent     baseIntent    启动任务的Intent

任务栏(长按Home键或者Menu键或者点击任务键)里面的任务主要就是靠这种方法获取的。

                final List<ActivityManager.RecentTaskInfo> recentTasks =am.getRecentTasks(MAX_TASKS, ActivityManager.RECENT_IGNORE_UNAVAILABLE);

点击启动任务

        if (ad.taskId >= 0) {// This is an active task; it should just go to the foreground.am.moveTaskToFront(ad.taskId, ActivityManager.MOVE_TASK_WITH_HOME,opts);} else {Intent intent = ad.intent;intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY| Intent.FLAG_ACTIVITY_TASK_ON_HOME| Intent.FLAG_ACTIVITY_NEW_TASK);if (DEBUG) Log.v(TAG, "Starting activity " + intent);context.startActivityAsUser(intent, opts,new UserHandle(UserHandle.USER_CURRENT));}

滑动删除任务(hide方法,需系统权限android.permission.REMOVE_TASKS)

am.removeTask(ad.persistentTaskId, ActivityManager.REMOVE_TASK_KILL_PROCESS);

设置中强行停止应用(hide,须要非public权限)

        ActivityManager am = (ActivityManager)getActivity().getSystemService(Context.ACTIVITY_SERVICE);am.forceStopPackage(pkgName);

2.List<ActivityManager.RunningAppProcessInfo>           getRunningAppProcesses()

返回设备上正在执行的程序的进程集合。

(1)RunningAppProcessInfo类,主要有些字段

1.1 int     importance   这个字段的值假设为IMPORTANCE_FOREGROUND (100)时表示为前段执行的进程,为IMPORTANCE_BACKGROUND(400)表示后台执行。其值另一些其它的。

1.2 int     importanceReasonCode  对进程进行解释的字段,有3个值 REASON_UNKNOWN(0) 、REASON_PROVIDER_IN_USE(1)、REASON_SERVICE_IN_USE(2)。分别表示没原因、程序中的content provider被其它程序使用、与前一个理由一样。

1.3 int    importanceReasonPid   当 importanceReasonCode  的值不为0时这个字段代表1.2中其它程序的PID值,否则值为0。

1.4 ComponentName     importanceReasonComponent     当 importanceReasonCode  中值不为0时,这个字段代表1.2中其它程序的 ComponentName,否则为null。

1.5 int     pid    进程的PID值。

1.6 int   uid    user id.

1.7  String    processName   进程名,实际等于包名(content provider免疫)。

1.8 String[]     pkgList    程序内全部主包,这个測试出来,一般程序都仅仅有一个元素,但系统自带的程序而且有content provider的有几个包。

3 List<ActivityManager.RunningTaskInfo>        getRunningTasks(int maxNum)

返回正在执行中的程序,參数为返回的最大个数,返回的顺序为  近期打开的程序,即优先返回最新使用的程序。返回值可能为空。

(1)RunningTaskInfo类,主要提供字段

1.1 ComponentName        baseActivity    代表登陆的Activity的 ComponentName,即能够用这个返回值启动这个所代表的程序。

1.2  int               id                    A unique identifier for this task.

1.3  int         numActivities     Number of activities in this task.

1.4  int          numRunning         Number of activities that are currently running (not stopped and persisted) in this task.

1.5 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类,主要提供字段。

1.1  long       activeSince    第一次启动这个service到如今所过的时间段。

1.2  int           pid              进程的PID

1.3  int   uid    user id.

1.4  String      process    进程名(包名?)。

1.5  long     lastActivityTime  最后一次激活Service到如今的时间

1.6 ComponenName     service    得到这个Service的组件名,就是能通过这个启动service

1.7  long   restarting     这个字段的值假设不是0,那么如今这个service还没启动,将在返回值的时间段过后自启动。

6. void    restartPackage (String packageName)

如今这种方法等于方法4了,调用这种方法等于在调用方法4.

转载于:https://www.cnblogs.com/blfshiye/p/4294213.html

ActivityManager相关推荐

  1. Android组件框架:Android组件管理者ActivityManager

    关于作者 郭孝星,程序员,吉他手,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至guoxiaoxingse@163.com与我交流 ...

  2. Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)

    本节内容主要是讲解ActivityManager的使用,通过ActivityManager我们可以获得系统里正在运行的activities,包括 进程(Process)等.应用程序/包.服务(Serv ...

  3. ActivityManager.MemoryInfo 小问题

    ============问题描述============ 小菜一个,请教一下函数提示说 totalMem  totalMem cannot be resolved or is not a field ...

  4. Android中ActivityManager学习笔记

    在之前写过2篇关于ActivityManager的文章,如下所示.都是通过实战去了解里面的信息,现在感觉太繁琐,所以做一个api介绍比较详细.就像之前学习Telephony那样,对整体了解整个Acti ...

  5. Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用

    关于PackageManager和ActivityManager的使用 ,自己也写了一些DEMO 了,基本上写的线路参考了Settings模块下的 应用程序,大家如果真正的有所兴趣,建议大家看看源码, ...

  6. Android怎么结束一个进程,我试了用 ActivityManager.killBackgroundProcesses方法去结束,但是没有反应

    在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己. 有一种最新发现的方法,利用反射调用forceStopPa ...

  7. ActivityManager: Warning: Activity not started, its current task has been brought to the front

    Android项目在虚拟机上重新运行时出现: ActivityManager: Warning: Activity not started, its current task has been bro ...

  8. Android之ActivityManager与Proxy模式的运用

    二 Android中ActivityManager 从官方文档的介绍可以看到ActivityManager的作用: 是与系统所有正在运行着的Acitivity进行交互,对系统所有运行中的Activit ...

  9. ActivityManager kill reason

    1.73845    0    --    --    01.01.1970 00:30:33.691    268    279    info    114    pid: 995 tid: 47 ...

最新文章

  1. Centos6.5更换163源 epel源
  2. 企业dns服务器搭建
  3. Python: logging日志模块简单示例
  4. 真正释放Maven和Java EE的强大功能
  5. CSS3实现多页签图片缩放切换效果
  6. 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
  7. js 操作Listbox js 获取Listbox选择的值的代码
  8. mac php配置和扩展,mac 下安装php 以及 配置扩展!!!!!
  9. Hibernate查询技术(2)
  10. python cnn 股市_荐python3绘制股票K线图的那些坑【一】mpl_finance迁向mplfinance,以及plot独立窗口视图问题!...
  11. CSS 实现面包屑导航
  12. 合作共赢,共同飞跃 | DDG一站式数字化转型集成解决方案正式发布
  13. 美式英语口语中连读、略读,音变的技巧
  14. 【STM32训练—TOF激光测距模块】第一篇、STM32驱动TOF10120测量距离
  15. linux proftpd 用户,linux之proftpd搭建(随时盖楼)
  16. 进阶:主流的cpu插槽类型详解
  17. Duang! 工商银行也要做电商?
  18. 局域网访问提示无法访问检查拼写_我的电脑是win10系统,局域网共享打印机,提示windows无法访问,请检查名称的拼写.否则网络可能有问题,...
  19. pythonocc常见问题集锦
  20. 浙大Python 第1章-3 输出“人生苦短,我学Python” (10 分) ---- 过于ez

热门文章

  1. mysql查询每小时数据和上小时数据的差值
  2. windows下用elasticdump导入json数据到Elasticsearch中
  3. Win7下安装配置PHP+Apache+Mysql+PHPMyAdmin环境教程(非集成)
  4. 【大牛系列教学】java商城推荐算法
  5. 【深度学习入门到精通系列】什么是消融实验(Ablation experiment)
  6. 【Java Web前端开发】Response笔记
  7. java 正则 u2E80_java正则表达式中的POSIX 字符类和Unicode 块和类别的类介绍
  8. 反射工具类 java_Java反射工具类
  9. 归并排序执行次数_归并排序过程、时间复杂度分析及改进
  10. 网站推广——网站推广专员浅析企业网站验收和交付要注意哪些问题