Когда пользователь нажимает кнопку, он переключает логическое значение в объекте sharedpreference на true / false. Когда я в дальнейшем получаю доступ к этому состоянию в состоянии, оно сохраняется и работает нормально. Однако, когда я нажимаю кнопку «Назад» в Android, чтобы приостановить приложение и возобновить работу приложения, объект SharedPreference переключается на true. Даже при том, что это было в false, когда я исследовал метод onPause () с отладчиком.
В основном я пытался исследовать состояние объекта SharedPreference в методах onPause, onCreate и onResume моей деятельности. Я не уверен, почему значение возвращается к значению по умолчанию (true) во время метода onCreate.
override fun onPause() {
super.onPause()
val p = pauseButtonTracker.pauseButtonStateAtResume() // value is false
}
override fun onResume() {
super.onResume()
val q = pauseButtonTracker.pauseButtonStateAtResume() // value is switched to true
//...
// объект, который управляет объектом общих предпочтений, о котором я говорил
class PauseButtonTracker(context: Context) {
private val PAUSE_BUTTON_TRACKER = "PAUSE_BUTTON_TRACKER"
private val WAS_AT_RESUME = "WAS_AT_RESUME"
private val pauseTracker = context.getSharedPreferences(PAUSE_BUTTON_TRACKER, 0)
private val pauseTrackerEditor = pauseTracker.edit()
fun pauseButtonStateAtResume(): Boolean{
return pauseTracker.getBoolean(WAS_AT_RESUME, true)
}
fun switchPauseButtonStateToPause(){
pauseTrackerEditor.putBoolean(WAS_AT_RESUME, false)
pauseTrackerEditor.apply()
}
fun switchPauseButtonStateToResume(){
pauseTrackerEditor.putBoolean(WAS_AT_RESUME, true)
pauseTrackerEditor.apply()
}
}
значение, содержащееся в,
pauseButtonTracker.pauseButtonStateAtResume()
должен был остаться ложным, когда вызывается onResume, но по какой-то причине он переключается в true.