У меня есть приложение Android с заставкой.
Этот экран-заставка выполняет предварительную загрузку данных, а после завершения запускает основное действие приложения и завершается (с помощью вызова finish ()).
Это работает довольно хорошо, пока приложение не полностью убито. Таким образом, я обычно могу переключаться между различными задачами, как обычно: когда я покидаю приложение из вспомогательного действия и возвращаюсь вскоре после того, как мне представят это вспомогательное действие.
Теперь, когда я оставляю это вспомогательное действие и некоторое время занимаюсь другими делами, этот процесс приложения неизбежно уничтожается ОС.
Пока проблем нет. Теперь я ожидаю, что Android, не подозревая о моей предварительной загрузке (если данные не были предварительно загружены, это займет больше времени или не отобразит некоторые шрифты, но Android не может знать о том факте, что я выполняю предварительную загрузку где-то), чтобы восстановить подоперацию из пачки. Однако работа с заставкой начата.
Итак, я говорю, что все в порядке ... активность экрана-заставки - это после всего действия запуска / основного. Теперь, настоящая тайна, которая у меня есть, заключается в следующем.
Когда я нажимаю кнопку "Назад" на этом недавно загруженном заставке, мне будет представлен подактив, из которого я оставил приложение до его уничтожения. Я действительно не понимаю этого. Очевидно, Android DID сохранял состояние подоперации (и его стек истории) для перезагрузки, но вместо перезагрузки он решил вместо этого запустить заставку, с этим подэтапом (я оставил задачу раньше, чем она была убита) на шаг назад стек активности.
Почему это происходит?
Когда процесс не прерван, я могу вернуться туда, где я остановился. Когда он будет убит, я не смогу (но все же восстановить прежнюю историю этого приложения). Я знаю, что в последнем случае Android должен загружать состояние и т. Д., Но это не должно быть проблемой и выполняется автоматически по умолчанию (согласно документации).
P.S. Я не делаю ничего особенного. Флаги запуска по умолчанию, нет перезаписанных методов восстановления состояния и т. Д.