Так что в моем приложении я использую SharedPreferences
для сохранения состояния фрагмента. Но я хотел бы удалить те записи внутри SharedPreferences
, когда пользователь выходит за пределы приложения. Я попытался следующие:Удаление значений, когда пользователь закрывает приложение
В моем главном классе:
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if(isFinishing() == true)
{
SM.removePreferences();
}
}
где СМ представляет собой экземпляр вспомогательного класса я создал. removerPreferences делает следующее:
public void removePreferences(){
editor.clear();
editor.commit();
}
Но я заметил, что это никогда не выполнялось. В журнале я видел, что приложение входит в оператор isFinishing() if, но метод никогда не выполняется. Я также попробовал onDestroy()
, но метод так и не получил.
Может кто-нибудь помочь мне в этом?
'приложение входит в инструкцию isFinishing() if, но метод никогда не реализуется'. Если код переходит в блок 'if', тогда метод ДОЛЖЕН выполняться. Что заставляет вас говорить, что это не так? BTW, logcat не является хорошим способом устранения таких проблем. Вместо этого вы должны использовать отладчик. Вот для чего это. Кроме того, общие настройки не являются хорошим способом сохранения состояния, которое вы удалите, когда приложение выйдет. – Simon
Как вы предлагаете, чтобы я сделал это условие сохранения состояний ... потому что это было мое последнее прибежище @Simon –
«Как вы предлагаете, чтобы я сделал это, чтобы сохранить состояние вещей» - так как неясно, что «состояния» есть или почему вы «спасаете» их, на что невозможно ответить. Однако я согласен с Саймоном: не помещайте файлы в файлы, которые вы не хотите иметь в файлах. – CommonsWare