How to deal with orientation change with a ProgressDialog showing?

前端 未结 6 1104
余生分开走
余生分开走 2020-12-09 17:38

I am showing a ProgressDialog in the onPreExecute method of an AsyncTask object and canceling the ProgressDialog in the onPostExecute

相关标签:
6条回答
  • 2020-12-09 17:49

    Try adding this attribute android:configChanges="orientation" to your Activity element in the AndroidManifest.xml file.

    0 讨论(0)
  • 2020-12-09 17:51

    You can use the following code in Your Manifest

    <activity android:label="@string/app_name" 
            android:configChanges="orientation|keyboardHidden" 
            android:name=".your.package">
    
    0 讨论(0)
  • 2020-12-09 17:56

    You want to properly handle the activity lifecycle, which means saving and restoring the state of your activity, not attempting to prevent lifecycle changes. Do some reading on AsyncTask vs. the activity lifecycle.

    For example: pause-and-resume-asynctasks-android and what-to-do-with-asynctask-in-onpause.

    0 讨论(0)
  • 2020-12-09 18:01

    In my case I have used

    android:configChanges="orientation" 
    

    but it did not work for me

    Following is working fine

    <activity android:name=".MyActivity" 
              android:configChanges="orientation|screenSize|screenLayout">
    </activity>
    
    0 讨论(0)
  • 2020-12-09 18:04

    Add this in activity tag in application manifest.xml

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

    0 讨论(0)
  • 2020-12-09 18:06

    You could try disabling orientation changes during the time you show the ProgressDialog.

    at the beginning do:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
    

    and enable back after completion:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
    

    Hope this helps.

    (If anyone has a proper solution, I would also be interested :-)

    0 讨论(0)
提交回复
热议问题