1

我有一个应用程序,它列出了所有已安装的应用程序并在项目单击时启动它们。现在我通过阻止一些应用程序(如设置、android 市场等)对其进行了更新...为此,我使用了一个仅在退出我的应用程序时才停止的服务。这个服务不断检查当前正在运行的应用程序。如果它是一个被阻止的应用程序,则显示一个像这样的新活动。

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;

            }
        }
    }
}

这很好用。但是当从我的应用程序退出时,被阻止的应用程序停留在后台。我尝试了方法killBackgroundProcessesrestartPackage但它们不起作用。

 Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);     
             forceStopPackage.setAccessible(true);     
             forceStopPackage.invoke(am,package name);

这会引发空指针异常

如何在显示'action not allowed'活动之前关闭这些被阻止的应用程序?

有没有办法解决这个问题?

提前致谢

4

1 回答 1

2
于 2013-04-04T09:10:43.203 回答