0

Я пытаюсь совершить безопасное убийство процесса для спасения памяти. Безопасно ли убивать все фоновые процессы в действии, вызывая либо ActivityManager.killBackgroundProcesses, либо IActivityManager.killAllBackgroundProcesses? Я знаю, что это больно, если один из убитых процессов нужно перезапустить, но это безопасно? Возможно ли, что что-то важное для производительности системы или данных пользователя/системы будет потеряно?Можно ли убить все фоновые процессы в Android от службы?

+0

Короче говоря, да, есть вероятность потерять информацию. – poitroae

+0

Нет, другие службы других приложений/системы запущены. Это может привести к тому, что ваши данные и устройство будут находиться в недопустимом состоянии. –

+0

Я рекомендую против. Android был построен с самого начала, чтобы это не было необходимо – HXCaine

ответ

1

Я пытаюсь сделать безопасное уничтожение процесса для утилизации модуля памяти

ОС будет завершать процессы по мере необходимости, чтобы освободить системную память. Вам не нужно делать это самостоятельно. К моменту запуска вашего процесса достаточно памяти для запуска вашего процесса.

Возможно ли, что что-то важное для производительности системы или данных пользователя/системы будет потеряно?

Возможно, пользовательские данные будут потеряны. Например, если они были в середине формы, на какое-то мгновение переключились на какое-то другое приложение, и вы решили убить все фоновые процессы, они вполне могут потерять то, что они ввели.

+0

Спасибо, за ответ. В принципе, решение ОС для завершения процессов, необходимых для освобождения памяти, не подходит для меня, поскольку я не пишу ни одно приложение, а вместо этого изменяю компоненты инфраструктуры. Точка, в которой мне нужна свободная память, - это не то же самое, что и диспетчер активности. Кроме того, что касается потери данных, я сделал несколько экспериментов, и похоже, что обычно приложения, которые идут на задний план, автоматически не убиваются killAllBackgroundProcesses. Я думаю, что это управляется свойством 'important', т. Е. Если у процесса есть' IMPORTANCE_BACKGROUND'. – smichak

+0

@smichak: точка, в которой мне нужна свободная память, не такая, как та, что видна диспетчером активности ». Затем, как часть ваших изменений на Android, вы должны корректировать логику менеджера активности, а не беспорядочно убивая все фоновые процессы. – CommonsWare

Смежные вопросы