ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);        List infoList = am.getRunningAppProcesses();        for (ActivityManager.RunningAppProcessInfo info : infoList) {            //进程名称            String processName = info.processName;            //进程的重要程度(越低越重要)            int importance = info.importance;            if (importance > ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE) {                //该进程下的所有包名                String[] pkgList = info.pkgList;                for (String pkgName : pkgList) {                    //杀掉该包对应的程序                    am.killBackgroundProcesses(pkgName);                }            }        }


代码就是上面的这些,获取当前正在运行的进程并获取该进程下所有的包名,那么我们在哪些情况下需要获取正在运行的所有app?

第一种

  有时候我们的app需要跳转到另外一个不是自己公司开发app,那么跳转前肯定要检测下当前手机是否安装了别人公司的app,如果安装了就跳转,没有安装就弹出下载框。检测是否安装了某app的重点就是:要获取到某app的包名

        Intent intent = mContext.getPackageManager().getLaunchIntentForPackage("com.aaa.bbb");        if (intent != null) {            //该app存在            startActivity(intent);        } else {            //TODO: 开始下载        }
  检测是否安装app的代码如上,那么如果你想检测某app的话,就需要拿到那个app的包名,这时候就要用到一开始的代码了。


第二种

  强行关闭竞争对手的进程。调用ActivityManager的killBackgroundProcess("com.aaa.bbb")来kill掉别人的app

更多相关文章

  1. Android 监听手机GPS打开状态实现代码
  2. Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调
  3. Android中微信主界面菜单栏的布局实现代码
  4. Android开发实践:利用ProGuard进行代码混淆
  5. Android性能测试 一些适用于Android Studio的代码审查和性能测试

随机推荐

  1. Linux下彻底删除Mysql 8.0服务的方法
  2. 浅析centos 7 mysql-8.0.19-1.el7.x86_64
  3. mysql8.0.19忘记密码的完美解决方法
  4. CentOS7.5 安装 Mysql8.0.19的教程图文详
  5. MySQL 8.0.19支持输入3次错误密码锁定账
  6. MySQL8.0.19安装教程
  7. workerman写mysql连接池的实例代码
  8. MySQL数据库优化之索引实现原理与用法分
  9. MySQL数据库优化之分表分库操作实例详解
  10. MySQL主从复制与读写分离原理及用法详解