Как остановить приложение, если какие-либо действия были убиты ОС - PullRequest
1 голос
/ 11 сентября 2010

У меня есть приложение со многими формами, реализованными как отдельные действия. Переменные формы динамически создаются на основе базы данных, и на стороне C ++ приложения имеется масса переменных (доступ к которым осуществляется через JNI). Я не вижу, как сохранение всех этих данных в постоянном хранилище каждый раз, когда onPause () или onSaveInstanceState () одного из этих многочисленных действий переходит в фоновый режим, является разумным использованием процессорного времени. И я не понимаю, как, даже если бы я сохранил локальные переменные для каждого действия в течение этого времени, я смог бы восстановить одно действие в контексте всех остальных.

Я настроил службу, которая автоматически сохраняет файлы, когда обнаруживает, что приложение ушло в фоновый режим. (Я устанавливаю метку времени, когда onPause () вызывается в любом действии, а затем очищаю метку времени, когда onResume () вызывается для любого другого действия. Если истекшее время превышает несколько секунд, я знаю, что я не больше активности, и сервис сохраняет файлы).

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

Заранее спасибо!

1 Ответ

0 голосов
/ 11 сентября 2010

Настройка clearTaskOnLaunch="true" in the manifest's <activity> tag for the root Activity combined with setting noHistory = "true" во всех тегах действий должна выполнять то, что вы ищете.

http://developer.android.com/guide/topics/manifest/activity-element.html#clear http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

...