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

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

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

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

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

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

Android Ошибка при повороте экрана
Сохранение объекта при повороте экрана Android
Android Непонятное поведение при повороте экрана
При повороте экрана, сохранить 3 объекта(фрагменты) и потом восстановить их Android
Сохранить, восстановить данные при повороте (Фрагмент, Поток) Android
Как сохранить данные при свертывании аппаратной кнопкой "Back"? Android
Как сохранить состояние хронометра при повороте экрана? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 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
 Аватар для Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 718
26.10.2015, 10:49  [ТС]     Как сохранить все данные при повороте #3
а с помощью Parcelable можно сохранить данные для одной и той же активити?
Паблито
резкий
1944 / 1684 / 521
Регистрация: 12.05.2014
Сообщений: 6,018
Завершенные тесты: 1
26.10.2015, 10:52     Как сохранить все данные при повороте #4
если разметка активити одна и та же для обеих ориентаций, то пересоздание активити лучше вообще отключить в манифесте
XML
1
android:configChanges="orientation|screenSize"
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
26.10.2015, 15:01     Как сохранить все данные при повороте #5
Паблито, но это не освобождает от сохранения данных. Т.к. активити может пересоздаваться после выгрузки из памяти, при подключении физической клавиатуры, при смене языка устройства и может еще когда нибудь.
Паблито
резкий
1944 / 1684 / 521
Регистрация: 12.05.2014
Сообщений: 6,018
Завершенные тесты: 1
26.10.2015, 15:04     Как сохранить все данные при повороте #6
Вопрос был как сохранить при перевороте.
Кроме того - сохранение в бандл тоже не навсегда и в любой момент все сохраненные там данные могут пропасть.
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
26.10.2015, 15:07     Как сохранить все данные при повороте #7
Цитата Сообщение от Паблито Посмотреть сообщение
Вопрос был как сохранить при перевороте.
Я знаю, но мало ли кто-то подумает, что с этими волшебными строчками можно вообще не сохранять ничего)
Цитата Сообщение от Паблито Посмотреть сообщение
Кроме того - сохранение в бандл тоже не навсегда и в любой момент все сохраненные там данные могут пропасть.
Это когда например, кроме ручного завершения или перезагрузки?
Паблито
резкий
1944 / 1684 / 521
Регистрация: 12.05.2014
Сообщений: 6,018
Завершенные тесты: 1
26.10.2015, 15:19     Как сохранить все данные при повороте #8
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Я знаю, но мало ли кто-то подумает, что с этими волшебными строчками можно вообще не сохранять ничего)
а я бы и не сохранял, мнение свое не навязываю, но честно считаю что пересоздание активити при перевороте без смены лаяута - глупость полная

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

про банлд да, я имел ввиду перезагрузку или еще что-то, но основная мысль была не об этом, а о том, что чел будет считать что он все надежно сохранил, а на самом деле это не так
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
26.10.2015, 16:01     Как сохранить все данные при повороте #9
Паблито, согласен, конечно, по поводу поворотов. Но если не сохранять совсем ничего - приложение постоянно будет падать после сворачивания/разворачивания, если данные какие-то потеряет.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,069
27.10.2015, 10:17     Как сохранить все данные при повороте #10
Что в итоге то? Я как и 99% не создаю 2 лаяута. От приворота поворота изпользую setRetainInstance(true);
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
27.10.2015, 15:21     Как сохранить все данные при повороте #11
Rube, по поводу поворотов - конечно запрещать, если они не нужны. Но сохранять данные я считаю нужно всеравно. Попробуйте без сохранения запустить приложение через отладку, свернуть его, и нажать красный крестик в студии (нижняя кнопка слева, под скриншотом, видео и еще чем-то). При нажатии приложение будет полностью выгружено из памяти и при перезапуске попытается все данные восстановить из бандла. У меня постоянно что нибудь да пропадает после такой операции и вылетает с NPE, если не сохранить нужные данные.
Паблито
резкий
1944 / 1684 / 521
Регистрация: 12.05.2014
Сообщений: 6,018
Завершенные тесты: 1
27.10.2015, 16:26     Как сохранить все данные при повороте #12
onSaveInstanceState только для фрагментов, не активити

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

а если приложение сворачивается или еще что-то - то вызовутся нужные методы и все сохранится, разница в том, что они не будут в тупую вызываться при каждом повороте
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2015, 17:31     Как сохранить все данные при повороте
Еще ссылки по теме:

Как сделать так, чтобы при повороте устройства экран оставался вертикальным? Android
Android Как и где сохранить данные игры
Android Ошибка с фрагментами при повороте устройства
Как при повороте экрана показывать видео дальше, а не сначала Android
Android Сохранить imageview при повороте экрана

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

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

Добавлено через 32 секунды
И какие методы нужно вызывать??
Yandex
Объявления
27.10.2015, 17:31     Как сохранить все данные при повороте
Ответ Создать тему
Опции темы

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