Разница между общим предпочтением и sqlite

Я знаю, что эта тема обсуждалась ранее в Stack Overflow. Но есть еще некоторые вещи, которые не ясны, когда я читаю предыдущие сообщения об этом. Итак, вот они:

  • Я знаю, что мы используем общие предпочтения для небольших наборов данных и sqlite для больших манипуляций с данными, поэтому, если мы просто хотим сохранить имя пользователя и пароль, мы должны использовать общие настройки?
  • Не будут ли разделяемые предпочтения потеряны, если пользователь удалит приложение? Например, я загружаю приложение под названием abc и сохраняю свое имя пользователя и пароль. Затем я удалю это приложение с одного телефона и попытаюсь получить доступ к нему с другого телефона с использованием того же имени и пароля. Будет ли это сохранено с использованием общих настроек или данные будут потеряны?
  • Какова основная причина, по которой мы используем один над другим рядом с большими и маленькими наборами данных?

Вы можете думать о различии между общими предпочтениями и базой данных SQLite с точки зрения размера данных, но это не совсем точно. Лучший способ подумать об этом – это структура данных, которые вы хотите сохранить.

Общие предпочтения могут хранить только пары значений ключа, тогда как база данных SQLite намного более гибкая. Таким образом, общие предпочтения особенно полезны для хранения пользовательских настроек, например, если приложение отображает уведомления и т. Д. Хотя база данных SQLite полезна практически для чего угодно.

Оба источника данных являются локальными, но вы должны знать, что это возможность резервного копирования данных вашего приложения в облачное хранилище, связанное с учетной записью пользователя Google. Это значительно облегчает пользователям изменение устройств и их приложений для простой передачи на новое устройство. Для получения дополнительной информации смотрите здесь .

В описанной вами ситуации вы потеряете имя пользователя и пароль в обеих ситуациях. Данные сохраняются на телефоне, когда вы удаляете приложение, данные, которые некоторые с ним также будут потеряны. Пользователь должен будет повторно ввести эту информацию.

Вы можете сохранить имя пользователя и передать либо общие настройки, либо БД, что является личным предпочтением. Просто убедитесь, что вы заблокировали ни один, т. Е. Не делитесь БД или Общие предпочтения, в которых вы храните эту информацию.

Что касается разницы … shared Предпочтения должны хорошо сохраняться … shared Preferences … вот пример:

Если я создам опцию для изменения цвета фона, я буду хранить все доступные опции в БД, которые могут быть загружены в представление адаптера для пользователя на выбор. Но я сохраню цвет, который они выбрали в общих предпочтениях. Таким образом, при загрузке приложения я могу получить значение общего предпочтения цвета фона, которое должно использоваться.

SharedPreferences используется только для этого, сохраняя пользовательские предпочтения, общие для всех приложений. Вы можете использовать его, например, для хранения имени пользователя пользователя или, возможно, некоторых параметров, которые он или она настроили в вашем приложении, в котором вы хотите запомнить.

SQLite – реляционная база данных . Он используется для хранения данных вашего приложения, а не настроек или информации о конфигурации.

Оба устройства хранятся локально на устройстве.

1.SharedPreferences хранит только Boolean, int, float, long, String пять видов простых типов данных, например, не может быть условным запросом. Таким образом, насколько SharedPreferences используется для хранения данных, насколько просто это может быть только дополнение к хранилищу, но не может полностью заменить другие данные, такие как база данных SQLite.

2.SharedPreferences на основе XML-файла для хранения ключа ключа-ключа, используемого для хранения информации о конфигурации (в основном предпочтения пользователя для вашего приложения).

3.Sharedprefrece точно так же, как cookies в сети, которые хранят некоторую базовую информацию на стороне клиента.

Оба хранят свои данные локально, поэтому удаление приложения приведет к удалению обоих. Кроме этого, SharedPreferences легче программировать, и вы правы в отношении количества данных.

В общем, общие предпочтения должны использоваться, если вы хотите, чтобы ваш пользователь мог напрямую манипулировать определенными полями данных. Общие предпочтения – это в основном пользовательские настройки; Если вы хотите, чтобы пользователь перенастроил приложение, чтобы вести себя по-разному, вы должны раскрывать эту функциональность в качестве общего предпочтения. С другой стороны, база данных SQLite должна использоваться, если вы хотите ограничить видимость данных только приложением, если вам нужна более надежная гарантия того, что данные будут постоянными, и если вы хотите, чтобы приложение вел себя независимо от того, что Хранится в базе данных. Конечно, вы можете использовать оба приложения в одном приложении.

Общие предпочтения и база данных являются частью локальных данных, хранящихся в приложении. Если вы удалите приложение, оба хранилища данных будут удалены.