У меня есть одно из моих действий, которое я хотел бы предотвратить вращением, потому что я запускаю AsyncTask, и поворот экрана заставляет его перезапускаться.
Есть ли способ сказать это действие "НЕ ВРАЩАТЬ экран, даже если пользователь трясет свой телефон, как сумасшедший"?
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
Ответы:
Добавить
или
к
<activity>
элементу / с в манифесте , и вы сделали.источник
Вы можете следовать логике ниже , чтобы предотвратить автоматический поворот экрана в то время как ваш
AsyncTask
работающий:getRequestedOrientation()
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR)
.AsyncTask
.AsyncTask
восстановления ваш предыдущий статус ориентации с помощьюsetRequestedOrientation(oldOrientation)
.Обратите внимание, что есть несколько способов доступа
Activity
(которые выполняются в потоке пользовательского интерфейса) к свойствам внутриAsyncTask
. Вы можете реализовать свойAsyncTask
класс как внутренний или использовать сообщениеHandler
, указывающее на вашActiviy
класс.источник
В своем файле манифеста для каждого действия, которое вы хотите заблокировать поворотом экрана, добавьте: если вы хотите заблокировать его в горизонтальном режиме:
или если вы хотите заблокировать его в вертикальном режиме:
источник
Самый простой способ сделать это -
в onCreate, сразу после
так...
источник
Вместо того, чтобы заходить в AndroidManifest, вы можете просто сделать это:
Единственным недостатком здесь является то, что он требует API уровня 18 или выше. Так что в основном это кончик копья.
источник
Activity.java
AndroidManifest.xml
источник
Следующий атрибут ACTIVITY в AndroidManifest.xml - это все, что вам нужно:
Итак, узел полной активности будет:
источник
Добавить:
источник
Добавьте следующее в ваш AndroidManifest.xml
[app> src> main> AndroidManifest.xml]
Пример:
источник
Если вы используете Android Developer Tools (ADT) и Eclipse, вы можете перейти на свой AndroidManifest.xml -> вкладка « Приложение » -> перейти вниз и выбрать свою деятельность. Наконец, выберите предпочитаемую ориентацию. Вы можете выбрать один из множества вариантов.
источник
Вы должны добавить следующий код в файл manifest.xml. Деятельность, для которой она не должна вращаться, в эту операцию добавьте этот элемент
Тогда он не будет вращаться.
источник
Вы можете попробовать таким образом
источник
Используйте AsyncTaskLoader для обеспечения безопасности ваших данных, даже если активность меняется, вместо использования AsyncTask, который является лучшим способом создания приложений, чем предотвращение поворота экрана.
источник
Предотвратить поворот экрана просто добавьте следующую строку в свои манифесты.
Это работает для меня.
источник
Пользователь
"portrait"
в вашем файле AndroidManifest.xml может показаться хорошим решением. Но это заставляет определенные устройства (которые лучше всего работают в ландшафте) переходить в портрет, не получая правильной ориентации. В последней версии Android вы получите ошибку. Так что мое предложение лучше использовать"nosensor"
.источник