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

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

Войти
Регистрация
Восстановить пароль
 
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
#1

Ошибки при востановление активити после уничтожения - Программирование Android

13.10.2013, 23:35. Просмотров 700. Ответов 6
Метки нет (Все метки)

Странное поведение андроида при переходе планшета в дежурный режим (черный экран).
Есть приложение, на главном активити 8 кнопок. Первые четыре (в таком же порядке инициализируются) именованные последующие четыре с именами Button1, Button2, Button3, Button4.
При запуске приложения все работает, переходы в другое активити и возврат обрабатывается без ошибок, а вот при переходе планшета в дежурный режим Button4 = null после строки Button4 = (Button) findViewById(R.id.button4);
Пробовал менять местами строки Button3 и Button4:
Java
1
2
Button4  = (Button) findViewById(R.id.button4);
Button3  = (Button) findViewById(R.id.button3);
Все равно Button4 = null
Вышел из ситуации вот так
Java
1
2
Button4  = (Button) findViewById(R.id.button4);
if (Button4 != null) Button4.setOnClickListener(this);
И получил интересную зависимость - при восстановление активити после уничтожения получаю Button4 = null, а при выходе из дежурного режима Button4 присваивается ссылка.
Подскажите в чем проблема?
Вот скриншот лога:
Миниатюры
Ошибки при востановление активити после уничтожения  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 23:35     Ошибки при востановление активити после уничтожения
Посмотрите здесь:
Мигает активити после сплешскрина Android
Android Запуск таймера после закрытия второй Активити
Android Запрет поворота экрана после создания активити
Android Приложение вылетает после перехода на второе активити
Приложение вылетает после перехода на новое активити Android
Android Не отображается игровое поле после выхода из другого активити
После запуска приложения запускать не главное активити, а сервис Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimirys
303 / 200 / 22
Регистрация: 16.01.2010
Сообщений: 567
13.10.2013, 23:56     Ошибки при востановление активити после уничтожения #2
Проблема в жизненном цикле приложения. Нужно весь код смотреть.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
14.10.2013, 14:54  [ТС]     Ошибки при востановление активити после уничтожения #3
Проблема оказывается в xml-ском layout-файлe (разметке). Помогите ее решить.
В общем проблема описанная в первом посту возникала из-зи того что я использую приложение только в layout-land
XML
1
android:screenOrientation="landscape"
и соответственно на каком-то этапе написания перестал заполнять layout файлы отвечающие за книжную ориентацию. Так вот жизненный цикл активити (при восстановлении в фоне, после уничтожения сборщиком мусора) цепляет соответствующий layout файл для Portrait, а в нем нет кнопки Button4.
Помогите, подскажите как сделать так чтобы андроид не вспоминал о книжной ориентации?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
14.10.2013, 15:32     Ошибки при востановление активити после уничтожения #4
Цитата Сообщение от korsaj Посмотреть сообщение
Проблема оказывается в xml-ском layout-файлe (разметке). Помогите ее решить.
В общем проблема описанная в первом посту возникала из-зи того что я использую приложение только в layout-land
XML
1
android:screenOrientation="landscape"
и соответственно на каком-то этапе написания перестал заполнять layout файлы отвечающие за книжную ориентацию. Так вот жизненный цикл активити (при восстановлении в фоне, после уничтожения сборщиком мусора) цепляет соответствующий layout файл для Portrait, а в нем нет кнопки Button4.
Помогите, подскажите как сделать так чтобы андроид не вспоминал о книжной ориентации?
В манифесте для активити прописать "android:screenOrientation="landscape"
Ой. Я наверное не то сказал.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
14.10.2013, 18:02  [ТС]     Ошибки при востановление активити после уничтожения #5
Ну не совсем не то.. Просто повторил.
Вот я еще нашел, попробую вставить обработчик в оnCreate.

Добавлено через 1 час 57 минут
Не помогло, все равно он вначале грузит книжную ориентацию.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
14.10.2013, 18:52     Ошибки при востановление активити после уничтожения #6
Можно попробовать программно повернуть экран в onConfigurationChanged.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2013, 20:03     Ошибки при востановление активити после уничтожения
Еще ссылки по теме:
Как изменится стек после вызова активити другого приложения Android
Android Скрыть элемент View после ввода логина и пароля на другом активити
Ошибка при при смене активити Android
Ошибка при вызове активити Android
Android Handler при пересоздании активити

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

Или воспользуйтесь поиском по форуму:
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
14.10.2013, 20:03  [ТС]     Ошибки при востановление активити после уничтожения #7
Повернуть до открытия файла разметки?
Я еще думаю о проверки наличия лайот файла до его загрузки, и если он не существует, не грузить его.
Либо проверять состояние экрана и выбирать грузить лайот файл или не надо.

Добавлено через 32 минуты
Метод onConfigurationChanged не вызывается, так как смена ориентации запрещена в манифесте.
Проверить наличие лайот файла не представляется возможным так как он всегда есть (у них один id на два лайот файла).

Добавлено через 8 минут
А вот метод getResources().getConfiguration().orientation работает.
Еще есть идея, ща проверю отпишусь.

Добавлено через 16 минут
Ну и последнее решение: не надо было мне балбесу создавать папку layout-land. По умолчанию андроид берет файл разметки из папки layout и не важно как ориентирован экран!
Yandex
Объявления
14.10.2013, 20:03     Ошибки при востановление активити после уничтожения
Ответ Создать тему
Опции темы

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