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

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

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

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

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

При повороте нужно сохранить все данные activity. Как это делают и делают ли?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2015, 14:14     Как сохранить все данные при повороте
Посмотрите здесь:
Сохранить, восстановить данные при повороте (Фрагмент, Поток) Android
Как сохранить состояние хронометра при повороте экрана? Android
Android Сохранить imageview при повороте экрана
При повороте экрана, сохранить 3 объекта(фрагменты) и потом восстановить их Android
Как при повороте экрана показывать видео дальше, а не сначала Android
Как сохранить данные при свертывании аппаратной кнопкой "Back"? Android
Как сделать так, чтобы при повороте устройства экран оставался вертикальным? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 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
Сообщений: 729
26.10.2015, 10:49  [ТС]     Как сохранить все данные при повороте #3
а с помощью Parcelable можно сохранить данные для одной и той же активити?
Pablito
2452 / 1897 / 590
Регистрация: 12.05.2014
Сообщений: 6,698
Завершенные тесты: 1
26.10.2015, 10:52     Как сохранить все данные при повороте #4
если разметка активити одна и та же для обеих ориентаций, то пересоздание активити лучше вообще отключить в манифесте
XML
1
android:configChanges="orientation|screenSize"
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
26.10.2015, 15:01     Как сохранить все данные при повороте #5
Паблито, но это не освобождает от сохранения данных. Т.к. активити может пересоздаваться после выгрузки из памяти, при подключении физической клавиатуры, при смене языка устройства и может еще когда нибудь.
Pablito
2452 / 1897 / 590
Регистрация: 12.05.2014
Сообщений: 6,698
Завершенные тесты: 1
26.10.2015, 15:04     Как сохранить все данные при повороте #6
Вопрос был как сохранить при перевороте.
Кроме того - сохранение в бандл тоже не навсегда и в любой момент все сохраненные там данные могут пропасть.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
26.10.2015, 15:07     Как сохранить все данные при повороте #7
Цитата Сообщение от Паблито Посмотреть сообщение
Вопрос был как сохранить при перевороте.
Я знаю, но мало ли кто-то подумает, что с этими волшебными строчками можно вообще не сохранять ничего)
Цитата Сообщение от Паблито Посмотреть сообщение
Кроме того - сохранение в бандл тоже не навсегда и в любой момент все сохраненные там данные могут пропасть.
Это когда например, кроме ручного завершения или перезагрузки?
Pablito
2452 / 1897 / 590
Регистрация: 12.05.2014
Сообщений: 6,698
Завершенные тесты: 1
26.10.2015, 15:19     Как сохранить все данные при повороте #8
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Я знаю, но мало ли кто-то подумает, что с этими волшебными строчками можно вообще не сохранять ничего)
а я бы и не сохранял, мнение свое не навязываю, но честно считаю что пересоздание активити при перевороте без смены лаяута - глупость полная

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

про банлд да, я имел ввиду перезагрузку или еще что-то, но основная мысль была не об этом, а о том, что чел будет считать что он все надежно сохранил, а на самом деле это не так
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 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,648
Завершенные тесты: 1
27.10.2015, 15:21     Как сохранить все данные при повороте #11
Rube, по поводу поворотов - конечно запрещать, если они не нужны. Но сохранять данные я считаю нужно всеравно. Попробуйте без сохранения запустить приложение через отладку, свернуть его, и нажать красный крестик в студии (нижняя кнопка слева, под скриншотом, видео и еще чем-то). При нажатии приложение будет полностью выгружено из памяти и при перезапуске попытается все данные восстановить из бандла. У меня постоянно что нибудь да пропадает после такой операции и вылетает с NPE, если не сохранить нужные данные.
Pablito
2452 / 1897 / 590
Регистрация: 12.05.2014
Сообщений: 6,698
Завершенные тесты: 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 Ошибка с фрагментами при повороте устройства

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

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

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

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