AlertDialog对话框弹出后,旋转屏幕,对话框消失,看log说是leak window,有人知道旋转屏幕时要让对话框一直存在怎么处理么〉?

解决方案 »

  1.   

    判断转屏,然后重新出AlertDialog,行不
      

  2.   

    怎么判断转屏的?在PhoneMangerWindow.java里面有个函数onOrientationChanged(int rotation)
    通过rotation 变量在/package/app的应用里面 怎么能访问rotation变量? 我加了import com.android.internal.policy.impl.PhoneWindowManager; 用mmm编译不能通过,还有其他的解决方法么?
      

  3.   

    看sdk文档中,有关onconfigchanged这段,然后配置mainfestxx.xml文件
      

  4.   

    竖屏和横屏的对话框都要单独定义。默认的是竖屏的对话框,横屏的内容请定义在res/layout-land/包中
      

  5.   

    看起来不是横屏对话框没有。(默认alertDialog是不需要另外设置landscape layout属性的)leak window么?你的acticity没有做转屏的重载吧?或者说,你的activity转屏走的是re-create还是onConfigurationChanged?
      

  6.   

    你的应用里做过关于对横竖屏的处理!正常情况下dialog是不会关闭的
      

  7.   

    <activity android:name=".MainActivity"
                      android:icon="@drawable/notification_sym_update"
                      android:label="@string/app_name"                  android:configChanges="navigation|orientation|keyboardHidden" >加上這句話 就不會消失了   
      

  8.   


    请不要误导别人,你这样,只是针对只有一套layout的activity,横、竖切换不需要重新加载layout的情况
    如果是一个区分land和port两套layout的activity,你这样不是断了activity的路嘛
    你这样一加,activity在屏幕方向切换时,就不会销毁activity了,也就不会load新的layout