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

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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

3.Sharedprefrece точно так же, как cookies в сети, где хранятся некоторые основные сведения на стороне клиента.

Ответ 5

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

Ответ 6

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

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