Мне нужно мое приложение для Android, чтобы сохранить его на диске, когда его активность будет помещена в фоновом режиме или убита. Было предложено начать поток, когда вызывается onPause() и выполняются какие-либо дорогостоящие процедуры ввода-вывода (см. Сохранение/загрузка документа быстро и надежно для редактора изображений).
В каких ситуациях ОС будет убивать поток и как обычно происходят эти ситуации?
Я предполагаю, что это будет похоже на то, как решаются действия, когда ОС может произвольно решить убить поток, но в основном будет делать это только тогда, когда ресурсы крайне ограничены. Было бы неплохо найти определенную документацию об этом, хотя.
От игры с некоторым тестовым кодом фоновый поток, запущенный в onPause(), будет работать бесконечно в фоновом режиме на моем устройстве (я пытался загружать множество приложений и не мог заставить его быть убитым).
Для моего конкретного приложения я пишу редактор растровых изображений, в котором я использую шаблон Command и шаблон Memento, чтобы разрешить отмену и повтор изменений. Я хотел бы, чтобы пользователь мог отменить/изменить свои правки, например, пользователь получает телефонный звонок, и активность убивается, когда он помещается в фоновом режиме. Лучшее решение, которое я могу придумать, - использовать фоновый поток для постоянного сохранения моих команд и объектов памяти на диске во время использования приложения и для завершения сохранения любых объектов, оставшихся в фоновом потоке, если вызывается onPause. В худшем случае, если поток убит, я только потеряю некоторые изменения.