searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Android 在代码中强制关闭其他应用的方法

2022-12-12 02:47:10
533
0
方法一:
传统方法之一,通过反射机制调用ActivityManager的forceStopPackage函数。
使用这个方法时要在对应应用中添加权限:android.permission.FORCE_STOP_PACKAGES
 
ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
Method method = Class.forName("android.app.ActivityManager").getMethod("forceStopPackage", String.class);
method.invoke(mActivityManager, packageName); //packageName是需要强制停止的应用程序包名
 
这个方法是网上能找到的常见方法,它能够杀掉其他应用,但是杀掉应用之后会默认会回到launcher界面,在最近应用列表里面还是能看到该应用。
 
 
方法二:
使用最近应用程序移除使用过的应用的方法:
 
final List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasks(20 + 1, ActivityManager.RECENT_IGNORE_UNAVAILABLE); //MAX_RECENT_TASKS=20
for (ActivityManager.RecentTaskInfo taskInfo : recentTasks) {
if (taskInfo.baseActivity.getPackageName() == pkgName) {//pkgName是要移除的应用的包名
try {
ActivityManagerNative.getDefault().removeTask(taskInfo.id);
} catch (RemoteException e) {
e.printStackTrace();
}
break;
}
}
 
这个方法看起来优雅一些,因为这个真正的停掉并移除掉了想要关闭的应用,而且移除的效果是返回上一个应用,跟退出当前应用,回到下一个应用的效果一样。
 
以上两种方法都可以达到杀掉应用的效果,具体选用要视系统和需求使用情况而定。
0条评论
0 / 1000