Как я могу сделать некоторую очистку прямо перед выходом из приложения Android? - PullRequest
3 голосов
/ 28 октября 2011

Есть ли какой-нибудь метод onTerminate (), где я могу выполнить некоторую очистку (я хочу очистить некоторые SharedPreferences), когда мое приложение для Android завершает работу?

У меня есть Activity, в которой хранится скользящее среднее из нескольких чисел, которое я храню в SharedPreference. Я хочу, чтобы это среднее значение продолжалось, пока приложение работает (пользователь может перемещаться между различными действиями), поэтому я не могу очистить его в onDestroy () для этого конкретного действия. Я должен быть в состоянии очистить его, как только приложение собирается выйти.

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Я не пробовал этого, но вот что я бы сделал:

  • Как Алекс упомянул в комментарии к исходному вопросу, используйте Service, чтобы поделиться состоянием всего приложения между Activities.
  • Всякий раз, когда вы переходите между Activities, связывайтесь с сервисом из «нового» действия и отменяйте со «старого».Отметьте this , чтобы понять, как координировать действия.
  • Если вы правильно следуете этому, вы можете убедиться, что хотя бы один Activity всегда связан с Service, пока ваше приложениебежит;и что все действия не связаны, когда приложение больше не работает - в этот момент вызывается onDestroy() вашей службы.Здесь вы выполняете очистку.
0 голосов
/ 28 октября 2011

Таким образом, на самом деле у Android нет понятия, что приложение «готово». К сожалению, нет ничего синонимичного с "onTerminate ()". Есть ли какие-то критерии, по которым вы можете решить, когда очистить свое скользящее среднее?

0 голосов
/ 28 октября 2011

Используйте SharedPreference.Editor для удаления настроек и фиксации. Вот ссылка для вас: http://developer.android.com/reference/android/content/SharedPreferences.Editor.html

...