Корзина Android: как сохранить продукты, когда пользователь выходит из приложения?

Я разрабатываю приложение для электронной коммерции, такое как flipkart или amazon, мне нужно, чтобы продукты оставались в корзине, даже если пользователь случайно выходит из приложения, и я следую руководству http://www.androiddom.com/2011 кто-нибудь может сказать мне, как хранить продукты даже после выхода из приложения?


person Atul kumar    schedule 16.07.2017    source источник
comment
Просмотрите варианты здесь и выберите для себя. developer.android.com/guide/topics/data/data-storage. html   -  person Abhishek Jain    schedule 16.07.2017


Ответы (5)


Android предоставляет несколько вариантов сохранения постоянных данных приложений. Решение, которое вы выбираете, зависит от ваших конкретных потребностей, например, должны ли данные быть закрытыми для вашего приложения или доступными для других приложений (и пользователя) и сколько места требуется вашим данным.

Ваши варианты хранения данных следующие, но для вашего конкретного случая я бы выбрал общие настройки:

  • Общие настройки

    Храните частные примитивные данные в парах ключ-значение.

  • Внутренняя память

    Храните личные данные в памяти устройства.

  • Внешнее хранилище

    Храните общедоступные данные в общем внешнем хранилище.

  • Базы данных SQLite

    Храните структурированные данные в частной базе данных.

  • Подключение к сети

    Храните данные в Интернете на собственном сетевом сервере.

person K.Os    schedule 16.07.2017

Для хранения данных вы обычно используете базу данных. Лично я бы порекомендовал Realm в качестве локальной базы данных для Android, учитывая ее простоту и хорошую документацию.

person MacLean Sochor    schedule 16.07.2017
comment
MacLean Sochor Спасибо за это предложение, я с нетерпением жду царства - person Atul kumar; 16.07.2017

  1. Вы можете использовать общие настройки для хранения данных локальной корзины.
  2. Кроме того, SQLITE db — это еще один вариант хранения данных корзины пользователей.
person Sahidul Hassan Razon    schedule 16.07.2017

Вы можете использовать базу данных SQLite.

Вот официальная документация.

person u32i64    schedule 16.07.2017

Вы можете использовать базу данных (SQLite) или использовать ключ sharedpreferences со строкой выбранных продуктов.

Вы можете использовать общие настройки следующим образом:

PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("cartporducts","porduct1;porduct2;porduct3;porduct4;...").apply();
person Falke Design    schedule 16.07.2017
comment
Вы будете хранить 100 товаров с ключами product1name, product1qty, product2name, product2qty... Нет, это не очень хороший подход. - person u32i64; 16.07.2017
comment
@sudo да, вы правы со 100 товарами, но у меня никогда не бывает больше 10 товаров в корзине - person Falke Design; 16.07.2017
comment
Да, но это простой способ сохранить данные без создания базы данных или есть более простой способ, которого я сейчас не знаю? - person Falke Design; 16.07.2017
comment
Если OP хочет сделать an e-commerce application like flipkart or amazon, ему нужно будет использовать SQLite или, по крайней мере, не SharedPreferences. - person u32i64; 16.07.2017
comment
@sudo Почему не SharedPreferences? Это просто другой способ записи данных в файл. Для такого небольшого количества данных это кажется управляемым. - person nasch; 17.07.2017
comment
@nasch 1. Вы не сможете искать или выполнять сложные запросы с помощью SharedPreferences. 2. Вам нужна отдельная запись для хранения не удаленных в данный момент идентификаторов элементов. Вы сами предпочтете выбрать то, что подходит именно вам. - person u32i64; 17.07.2017
comment
Хотя это правда, это не база данных инвентаризации; вариант использования - сохранить и восстановить состояние корзины покупок. - person nasch; 17.07.2017