当android包含半透明活动时,android:configChanges =“orientation”标志如何影响ACTIVITY STACK?

时间:2013-05-01 23:30:39

标签: android android-intent android-activity orientation android-orientation

有以下活动

  • MainActivity
  • TranslucentChildActivity
  • DialogGrandChildActivity

注意: android:configChanges =“orientation”在Manifest中为TranslucentChildActivity提及,因此无法重新创建

  1. MainParentActivity startActivityForResult - > TranslucentChildActivity
  2. TranslucentChildActivity startActivityForResult - > DialogGrandChildActivity
  3. 现在改变方向
    • 应销毁并重新创建DialogGrandChildActivity
    • TranslucentChildActivity也应该受到影响,因为它位于对话框活动的背景中,但由于设置了onConfigChange标志,因此不应销毁它
  4. 但是不幸的是,TranslucentChildActivity也被破坏并重新创建,并且onConfigurationChanged()回调未被调用,这是令人惊讶的......
  5. 问题:

    1. android:configChanges =“orientation”标志不适用于半透明活动?
    2. 如何阻止此半透明活动重新循环?
    3. 我尝试了很多方法而没有任何成功。我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:1)

我的观察结果:

  • 即使半透明的子活动将标志设置为处理其方向更改,如果半透明背后的MainParentActivity没有标志android:configChanges =“orientation”set
  • ,它将无效
  • 由于主要父母被杀死,整个活动堆栈将被销毁并重新创建
  • 无论儿童是否有任何标志设置
  • 一切都将被覆盖