获取android正在运行的所有app进程
16lz
2022-01-21
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
更多相关文章
- 超新鲜的字节客户端Android面经,附面试题答案解析
- android 获取局域网内其他手机的ip
- Android(安卓)获取无线蓝牙MAC信息代码
- Android获取WiFi ip相关信息
- Android工具类
- Android获取应用的签名信息
- android 获取屏幕分辨率
- android朋友圈监听键盘状态 点击空白区域隐藏键盘
- android 获取当前系统的语言