У меня есть приложение для галереи здесь .GalleryActivity содержит recyclerView, загруженный миниатюрами изображений.При нажатии на миниатюру запускается SlideshowActivity для увеличенного изображения.Я использую переход SharedElements, я знаю, как его использовать, и все работает нормально.Но что-то беспокоит меня довольно долго.
GalleryActivity запускается в портретном режиме.После перехода в режим слайд-шоу пользователь переводит телефон в альбомный режим и нажимает обратно.Ниже приведены последовательности, которые называются.
SlideshowActivity | finishAfterTransition
GalleryActivity | onActivityReenter
// I call supportPostponeEnterTransition() in onActivityReenter
GalleryActivity | onStart
GalleryActivity | onConfigurationChanged
// App will hang here if I do not call supportStartPostponedEnterTransition() by now
SlideshowActivity | finish
// Back transition starts here
SlideshowActivity | onPause
GalleryActivity | onStop
GalleryActivity | onDestroy
GalleryActivity | onCreate
GalleryActivity | onStart
GalleryActivity | onActivityResult
GalleryActivity | onResume
Эта последовательность просто не имеет смысла для меня, потому что после завершения обратного перехода GalleryActivity уничтожается и воссоздается, что вызывает мигание и перезагрузку.Разве не следует вызывать onActivityReenter после воссоздания GalleryActivity, тогда мы можем планировать обратный переход с выложенным новым видом?
Прямо сейчас, чтобы избежать этого, я сам занимаюсь изменением конфигурации GalleryActivity.через манифест android:configChanges="orientation|screenSize
.Как я знаю, мы должны избегать этого.Является ли это одним из случаев, когда нам нужно?
В этом случае последовательность станет ниже, и все работает просто отлично.
SlideshowActivity | finishAfterTransition
GalleryActivity | onActivityReenter
// I call supportPostponeEnterTransition() in onActivityReenter
GalleryActivity | onStart
GalleryActivity | onConfigurationChanged
// I call supportStartPostponeEnterTransition() once the view is ready
SlideshowActivity | finish
SlideshowActivity | onPause
GalleryActivity | onActivityResult
GalleryActivity | onResume
Пожалуйста, дайте мне знать, если есть правильнаяспособ обработать это, не обрабатывая onConfigurationChanged () самостоятельно.