Почему не рекомендуется использовать allowMainThreadQueries () для комнаты Android? - PullRequest
0 голосов
/ 26 октября 2018

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

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

Могу ли я использовать allowMainThreadQueries () в этом случае?Каждый раз, когда я читаю какое-то руководство по этой платформе, всегда говорит, что я не должен использовать его в производстве.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

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

В вашем случае, поскольку у вас есть только один счетчик, вы можете сделать это в главном потоке с помощью allowMainThreadQueries.И все эти «Не рекомендуется» не будут влиять на вашу производительность, потому что это не связано с большим количеством данных.Но тогда наличие единого счетчика в вашей базе данных будет противоречить точке базы данных (в вашем случае Room).Такие счетчики обычно хранятся в SharedPreference

0 голосов
/ 26 октября 2018

Из документации для разработчиков https://developer.android.com/training/data-storage/room/accessing-data

Примечание: Room не поддерживает доступ к базе данных в главном потоке, если вы не вызвали allowMainThreadQueries () в компоновщике, поскольку он может блокировать пользовательский интерфейс на длительный период времени.время.Асинхронные запросы - запросы, которые возвращают экземпляры LiveData или Flowable - исключаются из этого правила, поскольку при необходимости они асинхронно запускают запрос в фоновом потоке.

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