Передача объектов между activity
Передача объектов между activity
Существует несколько способов передачи объекта между activity:
1. через intent - используя сериализацию (при этом у нас создаётся новый объект => нужно его вернуть обратно, чтобы обновить старый): startActivityForResult...
2. через БД (как вариант ORM)
3. через sharedPreference (переводя объект в строку, например через GSON)
4. через объявление объекта статик или через класс Application (но тогда есть риск, что объект обнулится со временем)
Подскажите, какой наиболее правильный способ передачи ?
1. через intent - используя сериализацию (при этом у нас создаётся новый объект => нужно его вернуть обратно, чтобы обновить старый): startActivityForResult...
2. через БД (как вариант ORM)
3. через sharedPreference (переводя объект в строку, например через GSON)
4. через объявление объекта статик или через класс Application (но тогда есть риск, что объект обнулится со временем)
Подскажите, какой наиболее правильный способ передачи ?
Re: Передача объектов между activity
Если передача одноразовая то можно и джейсоном через интент, а если обмен будет частым, то стоит задуматься о БД или SP.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Передача объектов между activity
Всё естественно зависит от задачи.
1. У вас объект может меняться в обоих Acitvity?
2. Кэш должен жить после выгрузки приложения?
3. На сколько критичны эти данные (можем ли мы их потерять по какой-либо причине) ?
4. Как часто будет производиться это действие?
5. Как много таких объектов в системе?
6. На сколько сложна их структура? (1 поле строковое к примеру или вполне себе нормальный объект)
?
1. У вас объект может меняться в обоих Acitvity?
2. Кэш должен жить после выгрузки приложения?
3. На сколько критичны эти данные (можем ли мы их потерять по какой-либо причине) ?
4. Как часто будет производиться это действие?
5. Как много таких объектов в системе?
6. На сколько сложна их структура? (1 поле строковое к примеру или вполне себе нормальный объект)
?
Re: Передача объектов между activity
1. да, точнее в 5-ти activity.
2. кэш не нужен и видимо в случае использования БД/SP, придётся чистить все таблицы/записи при выходе из приложения.
3. данные крайне важны именно во время работы приложения, потерь не должно быть.
4. действие производится не часто.
5. объектов около 15.
6. структура: у каждого в ~10 переменных + несколько вложенных классов.
2. кэш не нужен и видимо в случае использования БД/SP, придётся чистить все таблицы/записи при выходе из приложения.
3. данные крайне важны именно во время работы приложения, потерь не должно быть.
4. действие производится не часто.
5. объектов около 15.
6. структура: у каждого в ~10 переменных + несколько вложенных классов.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Передача объектов между activity
Как вариант можете его сериализовать и сохранять во внутреннюю память. Если
А зачем вам старый обновлять, если вы всё равно на той активити не находитесь? Если потом идёт возврат, то можете как выше написал, сохранять во внутреннюю память. Но нужно быть готовым к тому, что данные сохранятся в памяти телефона. Если это нельзя делать, то гоняйте его как сериализованный объект. Сериализация конечно медленно, но в вашей задаче она редкая, поэтому не критично.через intent - используя сериализацию (при этом у нас создаётся новый объект => нужно его вернуть обратно, чтобы обновить старый)
Re: Передача объектов между activity
через интернет еще передать можно
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Передача объектов между activity
а если использовать статик + SharedPreference? т.е. при обращении к объекту проверять его на null, если true - то загрузить его с SP и соответственно при каких либо изменениях объекта сохранять его в SP.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Передача объектов между activity
А зачем тогда вообще статики? Проще сохранять сразу в SP и сразу оттуда грузить. Но опять же, может остаться информация после выгрузки приложения.