Xamarin Android: получить ВСЕ процессы, расположенные в памяти - PullRequest
2 голосов
/ 16 июня 2019

Есть ли способ считывать все процессы, а не только запущенные процессы.

Если я правильно понял Android, одновременно выполняется только один процесс, а все остальные процессы заморожены (фоновые процессы игнорируются)

1 Ответ

1 голос
/ 17 июня 2019

Вы можете получить все андроиды, которые в данный момент выполняют процессы приложения, используя следующий фрагмент кода:

ActivityManager activityManager = (ActivityManager)BaseContext.GetSystemService(Context.ActivityService);
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.GetMemoryInfo(memoryInfo);

List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.RunningAppProcesses as List<ActivityManager.RunningAppProcessInfo>;

Затем вы можете выполнить цикл по списку, называемому runningAppProcesses, и запросить класс информации о процессе для других битов информации, если требуется, они могут быть найдены в списке здесь.

Вот несколько примеров:

  • ProcessName - Имя процесса, с которым связан этот объект.

  • Pid - Pid этого процесса; 0 если нет.

  • Uid - идентификатор пользователя этого процесса.

EDIT:

В соответствии с комментарием ops ниже, что им нужны «замороженные» (приостановленные) процессы, вот некоторая дополнительная информация:

Раньше вы могли получить список запущенных задач, не совсем так же, как процессы, но определяемые android как:

Возвращает список задач, которые в данный момент выполняются, с наибольшим последние были первыми, а старые - по порядку. Обратите внимание, что «работает» не означает, что какой-либо код задачи загружен или активен - задача может быть заморожена системой, чтобы ее можно было перезапустить в своем предыдущем состоянии при следующем выводе на передний план.

List<ActivityManager.RunningTaskInfo>

Однако согласно документации Android эта функциональность была устарела на уровне API 21.

Начиная с Build.VERSION_CODES.LOLLIPOP, этот метод больше не доступен сторонним приложениям: введение ориентированного на документы «последние» означает, что он может передавать информацию о человеке вызывающей стороне. За обратная совместимость, он все равно вернет небольшое подмножество своих данные: по крайней мере, собственные задачи звонящего, и, возможно, некоторые другие задачи например, дома, которые, как известно, не чувствительны.

Я не думаю, что вы можете делать то, что вы хотите, по причинам, указанным Android выше, для получения дополнительной информации вы можете перейти по этой ссылке.

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