Android 如何删除后台运行的应用程序?

Android 如何删除后台运行的应用程序?,android,background,Android,Background,我有一个应用程序,它列出了所有已安装的应用程序,并在单击项目时启动它们。现在我更新了它,阻止了一些应用程序,如设置,android market place等。为此,我使用了一个仅在退出应用程序时停止的服务。该服务持续检查当前正在运行的应用程序。如果是被阻止的应用程序,则显示类似这样的新活动 private void currentlyRunningApps() { List<RunningTaskInfo> runningTasks = ((ActivityManager)

我有一个应用程序,它列出了所有已安装的应用程序,并在单击项目时启动它们。现在我更新了它,阻止了一些应用程序,如设置,android market place等。为此,我使用了一个仅在退出应用程序时停止的服务。该服务持续检查当前正在运行的应用程序。如果是被阻止的应用程序,则显示类似这样的新活动

private void currentlyRunningApps() {
    List<RunningTaskInfo> runningTasks = ((ActivityManager) getApplicationContext() .getSystemService("activity")).getRunningTasks(1);
    if (runningTasks != null && !runningTasks.isEmpty()) {
        for (int i = 0; i < runningTasks.size(); i++) {
            RunningTaskInfo runningtaskinfo = (RunningTaskInfo) runningTasks .get(i);
            String packageName = runningtaskinfo.topActivity.getPackageName();
            if(checkBlackListedTask(runningtaskinfo)) {

                handler.post(new Runnable() {
                    @Override
                    public void run() {
                     // show action not allowed activity 
                    }
                });
                break;

            }
        }
    }
}
这会引发空指针异常

在显示“不允许操作”活动之前,如何关闭这些被阻止的应用程序

有没有办法解决这个问题


提前感谢

ActivityManager.killBackgroundProcess()允许您终止位于后台且用户不可见的进程。这是为了防止您中断其他应用程序的执行


只有系统应用程序(位于/system/app中的应用程序)可以强制停止其他应用程序。基本上,我们需要android.permission.FORCE\u STOP\u PACKAGES权限。但是,它受到平台签名的保护。这就是为什么三星有一个TaskManager可以杀死应用程序,而我们开发者却不能。查看更多信息

是否检查我提到的链接。是的,我已添加到清单中。当我尝试打印此异常时,您能否发布日志?仅显示空。invoke(activityManager,包名)引发此异常。
 Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);     
             forceStopPackage.setAccessible(true);     
             forceStopPackage.invoke(am,package name);