Активность уничтожается после onActivityReenter, если ориентация изменилась - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть приложение для галереи здесь .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 () самостоятельно.

1 Ответ

0 голосов
/ 22 декабря 2018

enter image description here Привет @ tingyik90 лучше вспомнить предыдущее действие. Вы можете использовать фильтры намерений Задачи и Back Stack

...