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

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

Войти
Регистрация
Восстановить пароль
 
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 731
#1

Как сохранить все данные при повороте - Программирование Android

23.10.2015, 14:14. Просмотров 1241. Ответов 12
Метки нет (Все метки)

При повороте нужно сохранить все данные activity. Как это делают и делают ли?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2015, 14:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сохранить все данные при повороте (Программирование Android):

Сохранить, восстановить данные при повороте (Фрагмент, Поток) - Программирование Android
Помогите разобраться как сделать правильно поворот экрана. Есть МаинАктивити в которой создается клас XML_Load в котором загружаются...

Как сохранить состояние хронометра при повороте экрана? - Программирование Android
в программе запускается хронометр Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer); chronometer.start(); ...

Сохранить imageview при повороте экрана - Программирование Android
Доброго времени суток. При повороте екрана нужно сохранить imageView. Знаю что нужно использовать onSaveInstanceState() и ...

Сохранить состояние презентера при пересоздании (повороте) активити - Программирование Android
Вот у презентера можно реализовать метод onDetach() в котором он обнуляет ссылку на активити то есть как бы на View(при пересоздании...

При повороте экрана, сохранить 3 объекта(фрагменты) и потом восстановить их - Программирование Android
Инициализируются 3 таба так вот (код). Подскажите, как сохранить на них ссылки и потом обрабно достать при поворотах экрана ? Tab1...

Как при повороте экрана показывать видео дальше, а не сначала - Программирование Android
В общем, когда поворачивается экран видео воспроизводится сначала. Как я понял, при повороте view элементы с id сохраняются, хотя если...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
23.10.2015, 14:20 #2
Цитата Сообщение от Valakin Посмотреть сообщение
делают ли?
Делают.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("key", "value");
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(savedInstanceState != null){
            String string = savedInstanceState.getString("key");
        }
    }
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 731
26.10.2015, 10:49  [ТС] #3
а с помощью Parcelable можно сохранить данные для одной и той же активити?
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
26.10.2015, 10:52 #4
если разметка активити одна и та же для обеих ориентаций, то пересоздание активити лучше вообще отключить в манифесте
XML
1
android:configChanges="orientation|screenSize"
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
26.10.2015, 15:01 #5
Паблито, но это не освобождает от сохранения данных. Т.к. активити может пересоздаваться после выгрузки из памяти, при подключении физической клавиатуры, при смене языка устройства и может еще когда нибудь.
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
26.10.2015, 15:04 #6
Вопрос был как сохранить при перевороте.
Кроме того - сохранение в бандл тоже не навсегда и в любой момент все сохраненные там данные могут пропасть.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
26.10.2015, 15:07 #7
Цитата Сообщение от Паблито Посмотреть сообщение
Вопрос был как сохранить при перевороте.
Я знаю, но мало ли кто-то подумает, что с этими волшебными строчками можно вообще не сохранять ничего)
Цитата Сообщение от Паблито Посмотреть сообщение
Кроме того - сохранение в бандл тоже не навсегда и в любой момент все сохраненные там данные могут пропасть.
Это когда например, кроме ручного завершения или перезагрузки?
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
26.10.2015, 15:19 #8
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Я знаю, но мало ли кто-то подумает, что с этими волшебными строчками можно вообще не сохранять ничего)
а я бы и не сохранял, мнение свое не навязываю, но честно считаю что пересоздание активити при перевороте без смены лаяута - глупость полная

суть пересоздания при перевороте как раз в том, что бы применить другую разметку, но так как мало кто делает разные файлы для ориентаций то и пересоздавать - напрасная трата ресурсов

про банлд да, я имел ввиду перезагрузку или еще что-то, но основная мысль была не об этом, а о том, что чел будет считать что он все надежно сохранил, а на самом деле это не так
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
26.10.2015, 16:01 #9
Паблито, согласен, конечно, по поводу поворотов. Но если не сохранять совсем ничего - приложение постоянно будет падать после сворачивания/разворачивания, если данные какие-то потеряет.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
27.10.2015, 10:17 #10
Что в итоге то? Я как и 99% не создаю 2 лаяута. От приворота поворота изпользую setRetainInstance(true);
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
27.10.2015, 15:21 #11
Rube, по поводу поворотов - конечно запрещать, если они не нужны. Но сохранять данные я считаю нужно всеравно. Попробуйте без сохранения запустить приложение через отладку, свернуть его, и нажать красный крестик в студии (нижняя кнопка слева, под скриншотом, видео и еще чем-то). При нажатии приложение будет полностью выгружено из памяти и при перезапуске попытается все данные восстановить из бандла. У меня постоянно что нибудь да пропадает после такой операции и вылетает с NPE, если не сохранить нужные данные.
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
27.10.2015, 16:26 #12
onSaveInstanceState только для фрагментов, не активити

мы говорим в принципе об одном и том же, просто разными словами
сохранять (если есть что) необходимо, но я повторюсь - моя мысль была в том, что пересоздание активити при повороте экрана можно отключать, нет смысла что-то сохранять если это просто поворот экрана

а если приложение сворачивается или еще что-то - то вызовутся нужные методы и все сохранится, разница в том, что они не будут в тупую вызываться при каждом повороте
yura91
30 / 28 / 2
Регистрация: 23.10.2013
Сообщений: 2,255
27.10.2015, 17:31 #13
а если приложение сворачивается или еще что-то - то вызовутся нужные методы и все сохранится, разница в том, что они не будут в тупую вызываться при каждом повороте
В каком плане сворачивается?? Закрывается чтоли??

Добавлено через 32 секунды
И какие методы нужно вызывать??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2015, 17:31
Привет! Вот еще темы с ответами:

Как сохранить данные при свертывании аппаратной кнопкой "Back"? - Программирование Android
Здравствуйте. Подскажите пожалуйста, как сохранить данные при нажатии аппаратной кнопки back в главном активити? Мне бы в идеале хотелось...

Как сделать так, чтобы при повороте устройства экран оставался вертикальным? - Программирование Android
Как сделать так, чтобы при повороте устройства экран оставался вертикальным? (Не смеяться, только начинаю) :)

Как и где сохранить данные игры - Программирование Android
И например,я вышел из игры,или вырубился мобильный..Где я могу сохранить данные ,если я хочу потом вернуться и снова играть с того...

Ошибка при повороте экрана - Программирование Android
Доброго времени суток, пишу по следующему вопросу: Начал изучать программирование под андроид и создал простое приложение побаловаться....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.10.2015, 17:31
Ответ Создать тему
Опции темы

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