Страница 1 из 1

Лучший способ пересылать объекты в intent и bundle

Добавлено: 10 апр 2015, 10:56
Fry
Какой способ лучше для передачи объектов между активити и фрагментами?

Способы, которые знаю я.

1. Паковать в Parcelable.
+ Работает быстро
- Относительно много кода.
- Меняется объект, и Parcelable конструкции нужно также менять.

2. Сериализовать в json, потом передавать в качестве строки, затем десереализовывать. Имхо удобнее всего Gson.
+Мало кода, очень наглядно.
- Не понятно, на сколько эффективно.
- Не понятно, что с ограничениями по длинам строк при передча больших объектов.

3.Serializable. Проще, чем Parcelable, но работает вроде как сильно медленнее. На сколько я знаю, не рекомендуется для Android.

4. Вообще использовать стороннюю либо, типа EventBus. Которые передают объекты по-своему.
+ ?
- ?

Что думаете, какой способ лучше?

Re: Лучший способ пересылать объекты в intent и bundle

Добавлено: 10 апр 2015, 12:01
doter.ua
Между активити и фрагментами:
1) паблик методы\переменные.
2) интерфейсы.

Re: Лучший способ пересылать объекты в intent и bundle

Добавлено: 10 апр 2015, 12:59
Fry
Вопрос не совсем в этом, а скорее в технологии упаковки объектов.

ЗЫ. С паблик методами при передачи из активити во фрагмент я сталкивался с такой проблемой, что данные передавались, а View еще не было готово, и вылетал NullPointerException. Это происходило, например, при смене фрагменте в активити и необходимости посылать данные в новосозданный фрагмент. Тогда решал проблему через статический newInstance, который, кстати, использует Bundle, в который как раз и нужно упаковывать объекты. Вопрос в том, как лучше.

Re: Лучший способ пересылать объекты в intent и bundle

Добавлено: 10 апр 2015, 18:08
Mikhail_dev
Если какие-то данные необходимо использовать во многих частях программы, то делать кеш, который будет доступен всем (синглтон). Либо можно базу.
Если объектов мало или запросы к ним редки, то можно и через Bundle передавать в любом виде, ибо всё равно редко передаются

Re: Лучший способ пересылать объекты в intent и bundle

Добавлено: 11 апр 2015, 15:37
Fry
Mikhail_dev писал(а):Если какие-то данные необходимо использовать во многих частях программы, то делать кеш, который будет доступен всем (синглтон).
А данные хранить в качестве полей этого синглтона?

Re: Лучший способ пересылать объекты в intent и bundle

Добавлено: 11 апр 2015, 20:48
Mikhail_dev
Да. Это будет просто кеш данных.