Android ActivityManager killBackgroundProcess не работает - PullRequest
4 голосов
/ 05 сентября 2010

Я использую затмение. Я пытаюсь убить процесс в моем приложении. Однако в eclipse он, похоже, не знает подсказки для killBackgroundProcess от ActivityManager и не позволит мне продолжить. Я прочитал, что у вас должны быть разрешения на уничтожение фоновых процессов, и я уже добавил разрешение, которое он не распознал ни в одном из манифестов. Вот код, который я пытаюсь использовать:

ActivityManager activityManager = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
activityManager.killBackgroundProcess(myProcessId);

Ответы [ 5 ]

3 голосов
/ 05 сентября 2010

Убедитесь, что вы нацелены на уровень API 8, так как этот метод был добавлен только в Android 2.2.

2 голосов
/ 14 октября 2011

Подпись метода

public void killBackgroundProcesses (String packageName)

Не

public void killBackgroundProcess (int processID)

Работает следующий код:

public static void killThisPackageIfRunning(final Context context, String packageName){
    ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
    activityManager.killBackgroundProcesses(packageName);
}   

Но это работает только для> API уровня 8, так как этот метод был добавлен в Android 2.2.

0 голосов
/ 27 мая 2014

Вы можете попробовать эти коды ниже, у меня работает.

public static void clearMemory(Context context) {
        ActivityManager activityManger = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> list = activityManger.getRunningAppProcesses();
        if (list != null)
            for (int i = 0; i < list.size(); i++) {
                ActivityManager.RunningAppProcessInfo apinfo = list.get(i);

                String[] pkgList = apinfo.pkgList;

                if (apinfo.importance > ActivityManager.RunningAppProcessInfo.IMPORTANCE_PERCEPTIBLE ) {
                    for (int j = 0; j < pkgList.length; j++) {
                        activityManger.killBackgroundProcesses(pkgList[j]);
                    }
                }
            }
    }
0 голосов
/ 21 марта 2013

Убедитесь, что ваш вызов killBackgroundProcesses с верхней активности.

0 голосов
/ 10 ноября 2010

Аргумент: имя пакета, а не идентификатор процесса.Попробуйте передать его примерно так:

myActivity.getApplication().getPackageName()

в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...