Intereting Posts
Всплывающее окно по внешнему экрану входящих вызовов Android, например, приложение для Android Передача справки в Java Какова цель аргумента масштаба в таких функциях, как setYLabelsColor ()? Как захватить длинный нажатие клавиши громкости в андроиде? GetRight, getLeft, getTop, возвращающий нуль Обновление / изменение кэшированного растрового изображения с использованием Picasso и OkHttp Как я могу изменить продолжительность анимации для Android AnimationDrawable «на лету»? Используйте SyncAdapter для синхронизации с * локальными * gmail и facebook приложениями. Бета-версия в Android-магазине. Где ссылка для тестировщиков? Android и & nbsp; В TextView Ошибка: Gradle: выполнение не выполнено для задачи ': app: crashlyticsCleanupResourcesDebug'. > Ошибка инструмента разработчика Crashlytics Андроидный эмулятор не запускается на ubuntu 12.04 после запуска из ssh Android Studio, 9 Patch и кнопка «Показать плохие патчи». Как это знать? Как настроить окно на внешнем дисплее из службы? Как изменить высоту кнопки «Войти в систему с помощью Facebook»?

GetWritableDatabase () VS getReadableDatabase ()

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

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

Для операторов запросов стоит просто использовать getReadableDatabase () или есть очень мало различий в производительности между этими двумя методами.

Спасибо за ваше время.

Solutions Collecting From Web of "GetWritableDatabase () VS getReadableDatabase ()"

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

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

Если вы не собираетесь писать базу данных, просто используйте getReadableDatabase как это будет способствовать ясности и намерению кода.

Больше информации здесь .

Если вы посмотрите на NotepadProvider.java в образце проекта NotePad Google, вы увидите, что они используют оба варианта – в зависимости от варианта использования.

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

Основываясь на вашем приложении, вы можете судить об использовании. Если вы постоянно читаете значения, вы можете перейти на getreadabledatabase.

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

Если вы получаете ошибки типа «База данных заблокировано» при реализации параллельных (многопоточных) вызовов db, используйте getWritableDatabase вместо getReadableDatabase.

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