Использование Room вместо Singleton - PullRequest
0 голосов
/ 02 марта 2019

Я заметил, что в Room lib есть Builder с именем inMemoryDatabaseBuilder, в документации по комнате Android сказано:

Создает RoomDatabase.Builder для базы данных в памяти.Информация, хранящаяся в базе данных в памяти, исчезает при завершении процесса.Как только база данных построена, вы должны сохранить ссылку на нее и использовать ее повторно.

Я когда-либо использовал синглтон для хранения объекта сеанса в памяти и никогда не использовал Room для базы данных inMemory, мой вопрос:Хорошо ли использовать Room вместо Singleton для хранения данных сеанса в памяти?Синглтон вообще плохой пратик?Мне нужно в памяти, потому что эти данные сеанса используются только тогда, когда пользователь использует приложение, если приложение убито, эти данные сеанса не могут сохраняться ...

1 Ответ

0 голосов
/ 02 марта 2019

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

Имейте в виду, что база данных Room созданакак одиночный, потому что доступ к базе данных должен быть "управляемым" в многопоточных ситуациях.

Не забудьте создать его в методе onCreate вашего Application класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...