Мне нужно сохранить данные EditText
в файл, когда пользователь выходит из действия. Я знаю, что у меня есть много вариантов в зависимости от того, насколько важно сохранить эти данные для меня. Но для этого конкретного случая я в порядке, что я могу позволить себе потерять его, так что лучше всего подойдет лучший вариант.
Мы могли бы создать фоновый сервис, чтобы полностью отделить его от активности хоста. Однако я также думал о создании области сопрограммы, которая могла бы пережить действие (то есть: одноэлементный NonUIScope) и вызывать блок следующим образом:
override fun onSaveInstanceState(bundle: ...) {
...
mInput = et.text.toString()
}
override fun onDestroy() {
NonUIScope.launch {
Downloader.saveData(mInput)
}
}
Для достижения одной и той же цели могут быть несколько разные реализации. Конечно, например, используя onSavedInstanceSate()
вместо записи в файл, но моя точка зрения такова: если я использую созданный мной ApplicationScope
, могу ли я потенциально утратить активность (даже если в сопрограмме нет ссылки на пользовательский интерфейс) ?