【问题标题】:Activity destroyed after onActivityReenter if orientation changed如果方向改变,活动在 onActivityReenter 后销毁
【发布时间】:2018-12-22 09:07:59
【问题描述】:

我有一个图库应用 here。 GalleryActivity 包含加载有图像缩略图的 recyclerView。单击缩略图时,它会启动 SlideshowActivity 以获取放大的图像。我正在使用 SharedElements 转换,我知道如何使用它并且一切正常。但是有些事情困扰了我很长一段时间。

GalleryActivity 以纵向模式启动。进入 SlideshowActivity 后,用户将手机旋转到横向模式并按下回。下面是被调用的序列。

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 被销毁并重新创建,这会导致闪烁和重新加载。是不是应该在 GalleryActivity 重新创建后调用 onActivityReenter ,然后我们可以计划在新视图布局的情况下进行反向过渡?

现在,为了避免这种情况,我正在通过 Manifest android:configChanges="orientation|screenSize 自己处理 GalleryActivity 的配置更改。据我所知,我们应该避免这样做。这是我们需要的情况之一吗?

在这种情况下,序列将变为下面,一切正常。

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()。

【问题讨论】:

  • 这个运气好吗?如果方向或活动进入背景,我有同样的问题,即中转动画不起作用
  • @Manti_Core 我已经开源了我的应用程序here。我记得用一些我现在不记得的奇怪技巧来解决它。这些代码应该会有所帮助。
  • @Manti_Core 解释整个过渡的主要代码应该是this

标签: android android-lifecycle activity-lifecycle android-transitions shared-element-transition


【解决方案1】:

嗨@tingyik90,最好回忆一下以前的活动。你可以使用意图过滤器 Tasks and Back Stack

【讨论】:

  • 你能更精确一点吗?谢谢。
  • 再次调用已经在后台堆栈中的活动,不分配新内存它将使用以前打开的活动...##检查链接和图像
  • 我想你误解了我的问题。还是谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
相关资源
最近更新 更多