android:configChanges= "orientation" 标志在包含半透明活动时如何影响 ACTIVITY STACK?



有以下活动

  • MainActivity
  • TranslucentChildActivity
  • DialogGrandChildActivity

注意: android:configChanges="orientation"是在Manifest for TranslucentChildActivity中提到的,所以它不会被重新创建

  1. MainParentActivity startActivityForResult -> TranslucentChildActivity
  2. TranslucentChildActivity startActivityForResult -> DialogGrandChildActivity
  3. 现在改变方向
    • 应该销毁并重新创建DialogGrandChildActivity
    • TranslucentChildActivity也应该受到影响,因为它是在对话框活动的后台,但由于onConfigChange标志被设置,它不应该被销毁
  4. 但不幸的是,TranslucentChildActivity也被销毁并重新创建,并且onConfigurationChanged()回调没有被调用,这是令人惊讶的…

问题:

  1. android:configChanges="取向"标志不适用于半透明的活动?
  2. 我如何阻止这个半透明的活动被回收?
我试了好几种方法都没有成功。

我的观察:

  • 即使半透明子活动设置了处理其方向变化的标志,如果半透明后面的MainParentActivity没有设置android:configChanges="orientation"标志,它将是无效的
  • 由于主父进程被终止,整个活动栈将被销毁并重新创建
  • 无论孩子是否有任何标志设置
  • 将全部被覆盖

最新更新