Получение списка запущенных процессов и уничтожение определенного процесса - PullRequest
5 голосов
/ 23 марта 2012

Я выполняю следующий фрагмент кода:

ActivityManager actvityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> procInfos = actvityManager.getRunningTasks(1000);

Затем я убиваю один интересующий меня процесс с помощью

actvityManager.killBackgroundProcesses(process.baseActivity.getPackageName());

, где process - это записьfrom procInfos.

Проблема в том, что, если я снова запусту getRunningTasks - он все равно покажет процесс, который я (предположительно) убил, а диспетчер задач для Android перечислил этот процесс перед вызовом killBackgroundProcesses и удалилэто из списка после этого звонка.

Итак, есть ли идеи о том, как диспетчер задач получает свой список запущенных процессов?И нормально ли, что я успешно убил сторонний процесс на рутированном устройстве?

1 Ответ

5 голосов
/ 23 марта 2012

«Запуск» не означает, что пользователь запустил его; это может быть прослушивание событий, выполнение запланированной фоновой синхронизации или что-то еще.

ActivityManager.getRunningTasks () может быть ближе к тому, что вы хотите, но по сути у вас всегда будет эта проблема, потому что пользователь не имеет полного контроля над тем, что в данный момент активно.

...