Android - 杀死其他应用进程会导致崩溃

时间:2015-04-04 16:20:03

标签: android android-activity

我正在创建一个应用程序来锁定其他应用程序,其中一个过程是使用一个服务来扫描启动时的活动,如果列出它们进行锁定,则该进程将被终止。 (这只是第一步)。我正在测试我的代码,当我尝试打开已列出锁定的应用程序时,我的应用程序将随其服务一起崩溃。列出的用于锁定的活动在共享首选项中列出,如果要锁定它们,则布尔值为true。

此方法在计划每1000ms运行一次的计时器任务中实现:

    public void run() {


        //listen for apps opening
        ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

        List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);

        if (tasks != null && tasks.size() > 0) {
            String topActivity = tasks.get(0).topActivity.getPackageName();
            SharedPreferences settings = getApplicationContext().getSharedPreferences("data", Context.MODE_PRIVATE);
            boolean Checked = settings.getBoolean(topActivity, false);

            if (Checked==true) {          //if topactivity is marked for locking
                 am.killBackgroundProcesses(topActivity); //this causes the crash
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

检查您是否在AndroidManifest.xml文件中声明了KILL_BACKGROUND_PROCESSES权限:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />