Наличие ошибки, связанной с уничтожением/восстановлением активности ОС (или приложения?).
После некоторой отладки, если установить don't keep activities
и установить Background process limit
на no background process
, это приведет к другому поведению.
видел этот пост, но это не отвечает на вопрос здесь.
Вот что наблюдал:
В приложении он запускает компонент кинжала и поддерживает некоторый одноэлементный объект области приложения, а в действии A (действие запуска по умолчанию) он будет действием пользователя запускать действие B, в B он создает и размещает фрагмент. В одноэлементном объекте области приложения будут храниться некоторые данные для работы с фрагментом.
В случае установки только don't keep activities
при сворачивании приложения вызываются действия onDestroy(), а при повторном открытии приложения оно восстанавливает последнее активное действие (скажем, пользователь открыл действие B, B будет воссоздан с фрагментом, восстановленным с сохраненнымInstanceState). В этом случае одноэлементные объекты области приложения, управляемые кинжалом, все еще живы, поэтому состояние полностью восстанавливается до того, что было до сворачивания приложения.
Но если есть как don't keep activities
, так и установить Background process limit
в no background process
, то при сворачивании приложения onDestroy() активности не вызывается (только вызов onStop()).
Изменение поведения в настоящее время, если повторно открыть приложение, начнется с приложения onCreate() и воссоздает компонент кинжала. Таким образом, состояние перед свертыванием приложения не восстанавливается.
Но os, похоже, все еще помнит, что последнее действие - B, а B
onCreate(savedInstanceState: Bundle?)
вызывается с saveInstanceState, сохраняющим данные при сворачивании приложения, так же как и фрагмент B.
И это испорчено, у него есть данные из saveInstanceState, но одноэлементные объекты области приложения являются свежими, у которых нет данных для работы с объектами из saveInstanceState.
Кто-нибудь знает в этом случае, где сохраняется saveInstance, и почему, хотя приложение кажется воссозданным, но все же повторно сохраняется последнее действие (не запускающее действие)?