代码之家  ›  专栏  ›  技术社区  ›  james

如何使用显示的ProgressDialog处理方向更改?

  •  17
  • james  · 技术社区  · 15 年前

    我正在展示一个 ProgressDialog onPreExecute AsyncTask对象的方法,并在 onPostExecute 方法。在 doInBackground 方法我正在为用户注册发出HTTP请求。我希望允许更改屏幕方向。当我改变方向时 背景背景 方法仍在运行,我得到了各种有趣的错误,如“IllegalArgumentException:View Not Attached to Window Manager”和“RegisterScreen has Leaked Window…”

    我怎样才能正确地继续展示 进度对话框 方向改变后?或者,在用户请求提交注册后,如何禁用方向更改?

    6 回复  |  直到 10 年前
        1
  •  15
  •   Ragunath Jawahar cephus    13 年前

    尝试添加此属性 android:configChanges="orientation" 对你 Activity 元素在 AndroidManifest.xml 文件。

        2
  •  6
  •   Sec    15 年前

    您可以尝试在显示时禁用方向更改。 ProgressDialog .

    开始时做:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
    

    并在完成后启用返回:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
    

    希望这有帮助。

    (如果有人有合适的解决方案,我也会感兴趣:—)

        3
  •  4
  •   Community Mohan Dere    9 年前

    您希望正确地处理活动生命周期,这意味着保存和恢复活动的状态,而不是试图阻止生命周期的更改。在异步任务和活动生命周期之间进行一些阅读。

    例如: pause-and-resume-asynctasks-android what-to-do-with-asynctask-in-onpause .

        4
  •  2
  •   Deepak    13 年前

    将此添加到application manifest.xml的活动标记中

    <activity android:label="@string/app_name" android:configChanges="keyboardHidden|orientation|screenSize" android:name=".your.package"/>

        5
  •  1
  •   MD SHAHIDUL ISLAM    12 年前

    在我的情况下,我用过

    android:configChanges="orientation" 
    

    但它对我不起作用

    以下工作正常

    <activity android:name=".MyActivity" 
              android:configChanges="orientation|screenSize|screenLayout">
    </activity>
    
        6
  •  -1
  •   Datta Kunde    14 年前

    您可以在清单中使用以下代码

    <activity android:label="@string/app_name" 
            android:configChanges="orientation|keyboardHidden" 
            android:name=".your.package">
    
    推荐文章