Ich habe eine meiner Aktivitäten, deren Rotation ich verhindern möchte, da ich eine AsyncTask starte und die Bildschirmrotation sie neu startet.
Gibt es eine Möglichkeit, dieser Aktivität mitzuteilen: "DREHEN SIE DEN Bildschirm NICHT, auch wenn der Benutzer sein Telefon wie verrückt schüttelt"?
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
Antworten:
Hinzufügen
oder
zu den
<activity>
Elementen im Manifest und Sie sind fertig.quelle
Sie können der folgenden Logik folgen, um zu verhindern, dass der Bildschirm während des
AsyncTask
Betriebs automatisch gedreht wird:getRequestedOrientation()
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR)
.AsyncTask
.AsyncTask
Wiederherstellung stellen Sie Ihren vorherigen Orientierungsstatus mit wieder hersetRequestedOrientation(oldOrientation)
.Bitte beachten Sie, dass es verschiedene Möglichkeiten gibt, auf
Activity
Eigenschaften zuzugreifen (die auf einem UI-Thread ausgeführt werden)AsyncTask
. Sie können IhreAsyncTask
als innere Klasse implementieren oder eine Nachricht verwendenHandler
, die IhreActiviy
Klasse anstößt .quelle
Fügen Sie in Ihrer Manifest-Datei für jede Aktivität, für die Sie die Bildschirmdrehung sperren möchten, Folgendes hinzu: Wenn Sie sie im horizontalen Modus sperren möchten:
oder wenn Sie es im vertikalen Modus sperren möchten:
quelle
Der einfachste Weg, dies zu tun, war zu setzen
innerhalb von onCreate, gleich danach
so...
quelle
Anstatt in das AndroidManifest zu gehen, können Sie dies einfach tun:
Der einzige Nachteil hierbei ist, dass API Level 18 oder höher erforderlich ist. Im Grunde ist dies die Spitze des Speers.
quelle
Activity.java
AndroidManifest.xml
quelle
Das folgende Attribut für die AKTIVITÄT in AndroidManifest.xml ist alles, was Sie benötigen:
Der vollständige Aktivitätsknoten wäre also:
quelle
Hinzufügen:
quelle
Fügen Sie Ihrer AndroidManifest.xml Folgendes hinzu
[app> src> main> AndroidManifest.xml]
Beispiel:
quelle
Wenn Sie Android Developer Tools (ADT) und Eclipse verwenden , können Sie zu AndroidManifest.xml -> Registerkarte Anwendung -> gehen und Ihre Aktivität auswählen. Schließlich wählen Sie Ihre bevorzugte Ausrichtung. Sie können eine der vielen Optionen auswählen.
quelle
Sie müssen den folgenden Code in die Datei manifest.xml einfügen. Die Aktivität, für die es nicht gedreht werden soll, fügt in dieser Aktivität dieses Element hinzu
Dann dreht es sich nicht.
quelle
Sie können dies versuchen
quelle
Verwenden Sie AsyncTaskLoader , um Ihre Daten auch dann zu schützen, wenn sich die Aktivität ändert, anstatt AsyncTask zu verwenden. Dies ist eine bessere Möglichkeit, Apps zu erstellen, als die Bildschirmrotation zu verhindern.
quelle
Bildschirmdrehung verhindern Fügen Sie einfach die folgende Zeile in Ihre Manifeste ein.
Das funktioniert bei mir.
quelle
Der Benutzer
"portrait"
in Ihrer AndroidManifest.xml-Datei scheint eine gute Lösung zu sein. Bestimmte Geräte (die im Querformat am besten funktionieren) werden jedoch gezwungen, im Hochformat zu arbeiten, ohne die richtige Ausrichtung zu erhalten. In der neuesten Android-Version wird ein Fehler angezeigt. Mein Vorschlag ist also besser zu verwenden"nosensor"
.quelle