Как использовать saveInstanceState в onResume в Kotlin? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть запрос в Kotlin, в котором выполняется CountDownTimer, и действие переходит в состояние паузы. Когда он переходит в состояние паузы, я сохраняю оставшееся время CountDownTimer в onSaveInstanceState, и таймер останавливается с помощью cancel (). Теперь я хочу возобновить счетчик, когда деятельность возобновится. Но как я могу получить доступ к saveInstanceState внутри onResume, чтобы узнать оставшееся время?

Я попытался сохранить значения в приватный пакет,

    private var bundle:Bundle?=null
.
.
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        bundle?.putInt("time_left",remaining_time)
    }

    override fun onResume() {
        super.onResume()
        time = bundle!!.getInt("time_left");
    }

.
.

Я мог бы записать его в onCreate или использовать onRestoreInstanceState, но если действие не go переходит в состояние onCreate из состояния onPause и напрямую переходит в состояние onResume (например, при поступлении телефонного звонка), то и onCreate, и onRestoreInstanceState не помогут. Тогда как я могу обновить его через onResume?

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Я думаю, что если вы хотите получить time_left, попробуйте использовать getIntent (). GetExtras () в onResume

0 голосов
/ 31 марта 2020

Вам не хватает в вашем onCreate

if (savedInstanceState != null) {
    // Load your variable
}

вот ссылка более подробно: Как использовать пример наSavedInstanceState, пожалуйста

...