Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 100, средняя оценка - 4.73
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
#1

Запрет поворота экрана после создания активити - Программирование Android

31.10.2012, 12:19. Просмотров 13167. Ответов 21
Метки нет (Все метки)

Как сделать сабж?
Если в onCreate вызываю :

setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

И если текущая ориентация не портрет - происходит повторный вызов onCreate, с другой ориентацией

Мне требуется запуск в ориентации behind, и блокировка изменения поворота.

Как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 12:19     Запрет поворота экрана после создания активити
Посмотрите здесь:
Android Запрет поворота экрана
После поворота экрана view формы пропадают Android
После поворота TextView занимает столько же места как и до поворота Android
Android Запуск в ландшафтном режиме и запрет поворота. Как сделать?
Android Обработка поворота экрана. Сохранение введенной информации
Android Если поменять ориентацию экрана или SurfaceView перекроет другой активити, то приложение завершается аварийно
Мигает активити после сплешскрина Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 12:56     Запрет поворота экрана после создания активити #2
запретить до создания активити, то есть в манифесте.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 13:02  [ТС]     Запрет поворота экрана после создания активити #3
Цитата Сообщение от V0v1k Посмотреть сообщение
запретить до создания активити, то есть в манифесте.
и что там написать?
портрет / ландшафт - не катит. нужен запуск в разных вариантах.
behind - запускается правильно, но потом начинает крутиться. (это надо запретить)
nosensor - запускается в портрете. не гуд.
sensor - ну запустится правильно. а потом все равно заблокировать надо. как?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 14:00     Запрет поворота экрана после создания активити #4
нужно задать нужную ориентацию и в манифесте и в активити.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 14:13  [ТС]     Запрет поворота экрана после создания активити #5
Как?
Мне нужная - behind
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 14:31     Запрет поворота экрана после создания активити #6
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND);
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 14:46  [ТС]     Запрет поворота экрана после создания активити #7
Цитата Сообщение от V0v1k Посмотреть сообщение
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND);
Супер!!!

но я же уже писал:
behind - запускается правильно, но потом начинает крутиться. (это надо запретить)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 15:53     Запрет поворота экрана после создания активити #8
крутится несмотря на вызов setRequestedOrientation?
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 16:07  [ТС]     Запрет поворота экрана после создания активити #9
Цитата Сообщение от V0v1k Посмотреть сообщение
крутится несмотря на вызов setRequestedOrientation?
да, крутится

Вообще проблема в том, что приложение падает после нескольких поворотов.
в теме приложения указана тема с бекграундом (200кб).

<style name="MyTheme" parent="android:Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/background</item>
</style>


и с некоторых пор (на 2.х - вроде работало, на 4.0 - падает) после нескольких поворотов приложение стало падать:

Out of memory on a 16384016-byte allocation.

вроде не очень много.
Если строку с бекграундом убрать - ничего не падает.
Для некоторых активити решил проблему созданием двух view, инициализуемых единожды. но для всех такой изврат лепить не хочется. как победить проблему памяти - не знаю. решил запретить вращение когда не попадя.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 16:22     Запрет поворота экрана после создания активити #10
когда я задаю ориентацию в манифесте, у меня ниче не крутиться...

Добавлено через 57 секунд
Цитата Сообщение от Rebelx Посмотреть сообщение
как победить проблему памяти
использовать меньше памяти.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 16:31  [ТС]     Запрет поворота экрана после создания активити #11
Цитата Сообщение от V0v1k Посмотреть сообщение
когда я задаю ориентацию в манифесте, у меня ниче не крутиться...

Добавлено через 57 секунд

использовать меньше памяти.
какую задаешь?

Добавлено через 2 минуты
Цитата Сообщение от Rebelx Посмотреть сообщение
использовать меньше памяти.
Как?
Весь код:
Java
1
2
3
4
5
6
7
8
9
    public void onCreate(Bundle paramBundle) {
        super.onCreate(paramBundle);
        
        setContentView(R.layout.rules);
        WebView localWebView = (WebView) findViewById(R.id.webViewRules);
        localWebView.setBackgroundColor(Color.TRANSPARENT);
        localWebView.loadUrl("file:///android_asset/rules/rules.html");
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_BEHIND);
    }
выпадает на setContentView(R.layout.rules);
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 16:47     Запрет поворота экрана после создания активити #12
пробовал задавать только в манифесте behind, portrait, landscape. ниче не вращается.

Цитата Сообщение от Rebelx Посмотреть сообщение
выпадает на setContentView(R.layout.rules);
что выпадает?
setRequestedOrientation вроде нужно вызывать прежде setContentView.

Цитата Сообщение от Rebelx Посмотреть сообщение
Как?
не использовать то, что занимает много памяти. я так понимаю на фон ставишь тяжелую картинку.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 17:16  [ТС]     Запрет поворота экрана после создания активити #13
Цитата Сообщение от V0v1k Посмотреть сообщение
не использовать то, что занимает много памяти. я так понимаю на фон ставишь тяжелую картинку.
200Кб. меньше уже никак. и так 32 цвета всего

Добавлено через 3 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
setRequestedOrientation вроде нужно вызывать прежде setContentView.
не важно. крутится

Добавлено через 19 минут
Цитата Сообщение от Rebelx Посмотреть сообщение
200Кб. меньше уже никак. и так 32 цвета всего
уменьшил до 100КБ - не изменилось
уменьшил до 200 байт - перестало падать. но такой фон не круто
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 17:17     Запрет поворота экрана после создания активити #14
покеж как в манифесте задаешь ориентацию.

Добавлено через 40 секунд
Цитата Сообщение от Rebelx Посмотреть сообщение
уменьшил до 200 байт - перестало падать. но такой фон не круто
приглядись к другим ресурсам, может что-то другое занимает несколько мегабайт.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 17:23  [ТС]     Запрет поворота экрана после создания активити #15
Цитата Сообщение от V0v1k Посмотреть сообщение
приглядись к другим ресурсам, может что-то другое занимает несколько мегабайт.
нет ничего больше
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >




<WebView
android:id="@+id/webViewRules"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:scrollbars="none" />

</LinearLayout>

но фон - во всех активити одинаковый. и все падают. если убрать фон - все не падают.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 17:36     Запрет поворота экрана после создания активити #16
очень странно, лимит вроде 5мб если не память не подводит.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
31.10.2012, 17:44  [ТС]     Запрет поворота экрана после создания активити #17
Цитата Сообщение от V0v1k Посмотреть сообщение
очень странно, лимит вроде 5мб если не память не подводит.
можно с этого места подробнее? где можно прочитать про это?
чет слишком мало. с учетом наличия памяти гигабайтами.

у меня на эмуляторе и раньше такая проблема была
на теле (SGN7000) - нет. проект был заморожен на несколько месяцев.
в процессе обновил тело до 4.0.
вернулся к проекту - работать на теле перестало.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2012, 19:51     Запрет поворота экрана после создания активити #18
это в каком именно девайсе RAM больше гигабайта?
не помню где читал, вот здесь есть инфа про лимит в 16/24 mb на апликейшен - http://blog.gorges.us/2010/07/develo...-memory-limit/
можете еще погуглить.
Rebelx
3 / 3 / 0
Регистрация: 13.10.2009
Сообщений: 40
01.11.2012, 10:05  [ТС]     Запрет поворота экрана после создания активити #19
Цитата Сообщение от V0v1k Посмотреть сообщение
это в каком именно девайсе RAM больше гигабайта?
ну например:
http://market.yandex.ru/model-spec.x...0117&hid=91491
а у меня - первый, там один гиг
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 12:58     Запрет поворота экрана после создания активити
Еще ссылки по теме:
На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити Android
Android Запрет выполнения onCreate при повороте экрана
Как вызвать метод в активити классе из обычного не активити класса? Android
Android Приложение вылетает после перехода на второе активити
Android Ошибки при востановление активити после уничтожения

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.11.2012, 12:58     Запрет поворота экрана после создания активити #20
один из первых в котором больше гига?)
Yandex
Объявления
01.11.2012, 12:58     Запрет поворота экрана после создания активити
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru