Какой способ лучше для передачи объектов между активити и фрагментами?
Способы, которые знаю я.
1. Паковать в Parcelable.
+ Работает быстро
- Относительно много кода.
- Меняется объект, и Parcelable конструкции нужно также менять.
2. Сериализовать в json, потом передавать в качестве строки, затем десереализовывать. Имхо удобнее всего Gson.
+Мало кода, очень наглядно.
- Не понятно, на сколько эффективно.
- Не понятно, что с ограничениями по длинам строк при передча больших объектов.
3.Serializable. Проще, чем Parcelable, но работает вроде как сильно медленнее. На сколько я знаю, не рекомендуется для Android.
4. Вообще использовать стороннюю либо, типа EventBus. Которые передают объекты по-своему.
+ ?
- ?
Что думаете, какой способ лучше?
Лучший способ пересылать объекты в intent и bundle
Лучший способ пересылать объекты в intent и bundle
Arbeit macht Fry
Re: Лучший способ пересылать объекты в intent и bundle
Между активити и фрагментами:
1) паблик методы\переменные.
2) интерфейсы.
1) паблик методы\переменные.
2) интерфейсы.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Лучший способ пересылать объекты в intent и bundle
Вопрос не совсем в этом, а скорее в технологии упаковки объектов.
ЗЫ. С паблик методами при передачи из активити во фрагмент я сталкивался с такой проблемой, что данные передавались, а View еще не было готово, и вылетал NullPointerException. Это происходило, например, при смене фрагменте в активити и необходимости посылать данные в новосозданный фрагмент. Тогда решал проблему через статический newInstance, который, кстати, использует Bundle, в который как раз и нужно упаковывать объекты. Вопрос в том, как лучше.
ЗЫ. С паблик методами при передачи из активити во фрагмент я сталкивался с такой проблемой, что данные передавались, а View еще не было готово, и вылетал NullPointerException. Это происходило, например, при смене фрагменте в активити и необходимости посылать данные в новосозданный фрагмент. Тогда решал проблему через статический newInstance, который, кстати, использует Bundle, в который как раз и нужно упаковывать объекты. Вопрос в том, как лучше.
Arbeit macht Fry
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Лучший способ пересылать объекты в intent и bundle
Если какие-то данные необходимо использовать во многих частях программы, то делать кеш, который будет доступен всем (синглтон). Либо можно базу.
Если объектов мало или запросы к ним редки, то можно и через Bundle передавать в любом виде, ибо всё равно редко передаются
Если объектов мало или запросы к ним редки, то можно и через Bundle передавать в любом виде, ибо всё равно редко передаются
Re: Лучший способ пересылать объекты в intent и bundle
А данные хранить в качестве полей этого синглтона?Mikhail_dev писал(а):Если какие-то данные необходимо использовать во многих частях программы, то делать кеш, который будет доступен всем (синглтон).
Arbeit macht Fry
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Лучший способ пересылать объекты в intent и bundle
Да. Это будет просто кеш данных.