iphone убивает фоновые приложения - PullRequest
1 голос
/ 11 августа 2011

Есть ли способ убить фоновые приложения?

У меня есть приложение, над которым я работаю, которое записывает звук, а затем выводит его на экран с прокруткой. Проблема, с которой я столкнулся, заключается в том, что происходит сбой, если запись слишком длинная, потому что ей не хватает памяти, пытаясь построить ее , Мое исправление заключается в том, чтобы отслеживать количество свободной памяти и прогнозировать, сколько времени займет построение графика использования памяти, и остановите запись непосредственно перед тем, как ее станет недостаточно. Проблема в том, что чем больше приложений у меня работает в фоновом режиме, тем быстрее он прекращает запись, вместо того, чтобы убивать фоновые приложения, чтобы освободить место, как это делает ios до выполнения didRecieveMemoryWarning. Чтобы переформулировать мой вопрос, как я могу убить эти фоновые приложения? Apple на это нахмурится?

Ответы [ 3 ]

5 голосов
/ 11 августа 2011

Вы хотите программно убить другие фоновые приложения из своего приложения переднего плана?Я подозреваю, что Apple не одобрит это.

Теоретически вы можете получить их идентификаторы процессов из sysctl и отправить им SIGKILL для их завершения, но iOS не позволит вам получить информацию о других процессах, если вы не являетесь пользователем root (что означаетджейлбрейка).

1 голос
/ 11 августа 2011

Убийство фоновых приложений не решит вашу проблему. Даже если все другие приложения будут убиты, через некоторое время ваши приложения будут аварийно завершать работу.

Попробуйте использовать небольшой буфер для хранения этих данных и регулярно записывать их в хранилище. Когда пользователю необходимо прокрутить назад и прочитать старые записи, прочитайте их обратно из хранилища. Ограничивая размер окна, приложение будет использовать только определенный объем памяти.

1 голос
/ 11 августа 2011

iOS сама начнет закрывать неиспользуемые фоновые приложения одновременно с отправкой предупреждений о памяти.Но вы вообще не должны получать предупреждения о памяти, попробуйте вместо этого исправить управление памятью.

...