Frage

Ich bin ein ProgressDialog im onPreExecute Methode eines AsyncTask Objekt zeigt und die ProgressDialog im onPostExecute Verfahren abgebrochen wird. Im doInBackground Methode für die Benutzerregistrierung Ich mache eine HTTP-Anfrage. Ich möchte Bildschirmausrichtung Änderungen ermöglichen. Wenn ich die Ausrichtung ändern, während die doInBackground Verfahren noch läuft, ich jede Menge Spaß Fehler wie get ‚Illegal: Ansicht nicht zu Window-Manager angebracht‘ und ‚RegisterScreen hat durchgesickert Fenster ...‘

Wie kann ich weiterhin richtig die ProgressDialog nach einer Orientierungsänderung zeigen? Oder vielleicht, wie kann ich deaktivieren Orientierungsänderung, nachdem die Benutzeranforderungen ihre Anmeldung einreichen?

War es hilfreich?

Lösung

Versuchen Sie dieses Attribut android:configChanges="orientation" zu Ihrem Activity Elemente in der AndroidManifest.xml Datei hinzugefügt wird.

Andere Tipps

Sie könnten versuchen, Orientierungsänderungen deaktivieren während der Zeit Sie die ProgressDialog zeigen.

am Anfang tun:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

und ermöglichen zurück nach Abschluss:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

Hope, das hilft.

(Wenn jemand eine richtige Lösung hat, würde ich auch daran interessiert sein: -)

Sie möchten die Aktivität Lebenszyklus richtig behandeln, was bedeutet, das Speichern und Wiederherstellen den Zustand Ihrer Aktivität, versucht nicht Lifecycle Änderungen zu verhindern. Tun Sie etwas Lesung am AsyncTask gegen die Aktivität Lebenszyklus.

Zum Beispiel: Pause-and-resume-asynctasks-android und was zu tun-mit-AsyncTask-in-OnPause .

Fügen Sie diese in Aktivitäts-Tag in Anwendung manifest.xml

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

In meinem Fall habe ich verwendet

android:configChanges="orientation" 

, aber es hat nicht funktioniert für mich

Nach adaequat

<activity android:name=".MyActivity" 
          android:configChanges="orientation|screenSize|screenLayout">
</activity>

Sie können den folgenden Code in Ihrem Manifest verwenden

<activity android:label="@string/app_name" 
        android:configChanges="orientation|keyboardHidden" 
        android:name=".your.package">
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top