在打开SubMenu的情况下,Activity已经在方向更改时泄露了窗口

时间:2011-09-05 13:47:44

标签: android memory-leaks submenu options-menu orientation-changes

我的Android应用有问题。该活动有一个选项菜单。

菜单如下所示:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:title="@string/tx_1" 
    android:id="@+id/menu_1"        
    >
    <menu>
      <group android:checkableBehavior="single">
        <item 
          android:title="@string/tx_2" 
          android:id="@+id/menu_2"      
          />
        <item 
          android:title="@string/tx_3" 
          android:id="@+id/menu_3"      
          />
      </group>          
      <item 
        android:title="@string/tx_4" 
        android:id="@+id/menu_4"  
        android:checkable="true"    
        />
      </menu>
    </item>
  <item
    android:title="@string/tx_5"
    android:id="@+id/menu_5"
    />      
</menu>

当你点击第一个项目时,有一个SubMenu。它看起来像一个对话框,但我找不到一种方法来获得对这个对话框的引用。 当我旋转设备时,有一个泄漏的窗口错误。所以,似乎Android没有关闭SubMenu。有没有办法防止这个错误? 当然,SubMenu在重新创建后会消失,由方向更改触发。我可以重新打开选项菜单,但不能重新打开SubMenu。是否可以模拟第一个菜单项上的点击?

提前致谢!

顺便说一句,我不想​​通过更改清单来绕过轮换。

1 个答案:

答案 0 :(得分:0)

简单的解决方案是防止在App Orientation更改时销毁Activity实例。 您可以通过在Manifest中声明以下内容来实现此目的:

<activity android:configChanges="orientation"
 ... />