Size: a a a

AndroidDev :: Разработка. It's Android time now!

2020 July 08

EP

Evgeniy Partizan in AndroidDev :: Разработка. It's Android time now!
Jktu
декомпайлером
А отладчиком не?
источник

J

Jktu in AndroidDev :: Разработка. It's Android time now!
Александр Батурин
бандл то должен жить. фрагмент будет новый, а данные старые
бандл он же внутри приожения существует? нет?
источник

DK

Denis Kapaev in AndroidDev :: Разработка. It's Android time now!
Jktu
бандл он же внутри приожения существует? нет?
в недрах ОС
источник

АБ

Александр Батурин... in AndroidDev :: Разработка. It's Android time now!
Jktu
бандл он же внутри приожения существует? нет?
да, но для его сохранения есть специальный механизм, чтобы он всё переживал
источник

J

Jktu in AndroidDev :: Разработка. It's Android time now!
Denis Kapaev
в недрах ОС
сорян,я не в теме значит уже
источник

DK

Denis Kapaev in AndroidDev :: Разработка. It's Android time now!
Jktu
сорян,я не в теме значит уже
Telegram
Android Interview Review
Где хранятся данные onSaveInstanceState()?

Метод onSaveInstanceState() используется для сохранения состояния активити при изменении конфигурации.
onSaveInstanceState() сохраняет данные в объекте Bundle, который реализует ассоциативный массив (хранилище вида ключ-значение).

Ранее мы писали, что данные, сохраненные через onSaveInstanceState(), переживают остановку процесса приложения. Это значит, что Bundle хранится не в памяти приложения.

Также известно, что onSaveInstanceState() не сохраняет данные на диске. Это можно понять потому, что состояния приложений не могут быть восстановлены после перезагрузки девайса. Кроме того документация класса Parcel, который используется для сохранения Parcelable объектов в Bundle, не рекомендует использовать Parcel для persistent storage.

Где же сохраняется Bundle из onSaveInstanceState()?

Ответ: в системном классе ActivityManagerService, о котором мы уже писали в посте о запуске приложения.

Для каждой запущенной активити создается инстанс класса ActivityRecord. Этот…
источник

EP

Evgeniy Partizan in AndroidDev :: Разработка. It's Android time now!
Не понятно как посмотреть значение внутри классов. Вот типа как на скришоте,
v1  - должен быть стринг со значением test1, но вместо этого JEB показывает его id.
А нужно посмотреть какую строку содержит стринг
источник

АБ

Александр Батурин... in AndroidDev :: Разработка. It's Android time now!
Denis Kapaev
Telegram
Android Interview Review
Где хранятся данные onSaveInstanceState()?

Метод onSaveInstanceState() используется для сохранения состояния активити при изменении конфигурации.
onSaveInstanceState() сохраняет данные в объекте Bundle, который реализует ассоциативный массив (хранилище вида ключ-значение).

Ранее мы писали, что данные, сохраненные через onSaveInstanceState(), переживают остановку процесса приложения. Это значит, что Bundle хранится не в памяти приложения.

Также известно, что onSaveInstanceState() не сохраняет данные на диске. Это можно понять потому, что состояния приложений не могут быть восстановлены после перезагрузки девайса. Кроме того документация класса Parcel, который используется для сохранения Parcelable объектов в Bundle, не рекомендует использовать Parcel для persistent storage.

Где же сохраняется Bundle из onSaveInstanceState()?

Ответ: в системном классе ActivityManagerService, о котором мы уже писали в посте о запуске приложения.

Для каждой запущенной активити создается инстанс класса ActivityRecord. Этот…
аргументы фрагмента так же хранятся?
источник

DK

Denis Kapaev in AndroidDev :: Разработка. It's Android time now!
Александр Батурин
аргументы фрагмента так же хранятся?
не знаю, мне кажется что да
источник

DK

Denis Kapaev in AndroidDev :: Разработка. It's Android time now!
и тут Bundle и там Bundle
источник

C

Chernikov in AndroidDev :: Разработка. It's Android time now!
Но фрагменов ведь несколько экземпляров может создаться, и всем прилетит бандл от предыдущего некого лестроенного
источник

J

Jktu in AndroidDev :: Разработка. It's Android time now!
Denis Kapaev
Telegram
Android Interview Review
Где хранятся данные onSaveInstanceState()?

Метод onSaveInstanceState() используется для сохранения состояния активити при изменении конфигурации.
onSaveInstanceState() сохраняет данные в объекте Bundle, который реализует ассоциативный массив (хранилище вида ключ-значение).

Ранее мы писали, что данные, сохраненные через onSaveInstanceState(), переживают остановку процесса приложения. Это значит, что Bundle хранится не в памяти приложения.

Также известно, что onSaveInstanceState() не сохраняет данные на диске. Это можно понять потому, что состояния приложений не могут быть восстановлены после перезагрузки девайса. Кроме того документация класса Parcel, который используется для сохранения Parcelable объектов в Bundle, не рекомендует использовать Parcel для persistent storage.

Где же сохраняется Bundle из onSaveInstanceState()?

Ответ: в системном классе ActivityManagerService, о котором мы уже писали в посте о запуске приложения.

Для каждой запущенной активити создается инстанс класса ActivityRecord. Этот…
ну такое, это имхо какой то совсем костыль чтобы сохранять состояние ячеек ресайкла
источник

C

Chernikov in AndroidDev :: Разработка. It's Android time now!
Тогда в бандле активити хранить массив моделей или зачений ресайклера ячеек
источник

C

Chernikov in AndroidDev :: Разработка. It's Android time now!
Мда
источник

DK

Denis Kapaev in AndroidDev :: Разработка. It's Android time now!
Jktu
ну такое, это имхо какой то совсем костыль чтобы сохранять состояние ячеек ресайкла
согласен
источник

DK

Denis Kapaev in AndroidDev :: Разработка. It's Android time now!
я бы хранил не состояние ячеек, а бизнес-данные из которых ячейки рисуются

либо в синглтоне инициализированном в аппликейшне, либо во вьюмодели

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

J

Jktu in AndroidDev :: Разработка. It's Android time now!
Denis Kapaev
я бы хранил не состояние ячеек, а бизнес-данные из которых ячейки рисуются

либо в синглтоне инициализированном в аппликейшне, либо во вьюмодели

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

J

Jktu in AndroidDev :: Разработка. It's Android time now!
если данные нужно не терять в любой момент значит пиши сразу на локальное хранилище, на скорости это не скажется
источник

J

Jktu in AndroidDev :: Разработка. It's Android time now!
что так в память что так в память пишешь
источник

АБ

Александр Батурин... in AndroidDev :: Разработка. It's Android time now!
как вариант, но надо тогда смотреть, почему изначально так не сделали, а сделали на сохранение состояния в бандле
источник