Articles of андроид sqlite

Одновременное чтение и запись SQLite

Я прочитал много тем, но не могу понять ответ на вопрос: возможно ли читать и писать одновременно? У меня есть фоновый поток, который обновляет некоторые данные, а пользовательский интерфейс требует небольшого объема данных, хранящихся в БД. Таким образом, в пользовательском интерфейсе выполняется операция SELECT. Но он блокируется при обновлении. В результате пользовательский интерфейс зависает в […]

Android SQLite – Cursor & ContentValues

Есть ли способ получить объект ContentValues ​​из SQLite? Очень полезно, что мы можем вставлять ContentValues ​​в БД, и было бы более полезно получить CV оттуда.

Случайное исключение android.database.sqlite.SQLiteException: невозможно открыть файл базы данных

В моем приложении используется обработчик исключенных исключений, который отправляет мне трассировку стека при сбое приложения. Часто я получаю этот отчет от случайных пользователей. Я не могу повторить его, открытие базы данных всегда будет успешным в моем случае. Это не база данных, хранящаяся на внешней SD-карте, а только база данных, открытая с помощью SQLiteOpenHelper(context, "SomeName", null, […]

Android sqlite – выбор записей, где поле равно null или пустое

В моем приложении есть sqlite DB, где некоторые из полей являются пустыми или пустыми (это означает, что я никогда ничего не добавлял в это поле). Я хочу выбрать все записи, для которых поле пусто или пусто. Это то, что я пробовал: cursor = db.query(DBHelper.TABLE_NAME, COLUMNS, "folder_name = ? ", new String[] {"null"}, null, null, DBHelper.TIMESTAMP_COL […]

Производительность Android SQLite с индексами

Приложение для Android работает с использованием базы данных SQLite, созданной на ПК пользователя и переданной на устройство. Все это работает, но я не ожидал количества пользователей, у которых было бы действительно огромное количество данных. В этих случаях пользовательский интерфейс очень вялый, поскольку он ожидает получения данных. Я пробовал ряд трюков, которые я «уверен» ускорил бы, […]

Пользовательский ListView с Date как SectionHeader (используемый пользовательский SimpleCursorAdapter)

Я хочу показать ListView с Date как SectionHeader. Что у меня есть: я показываю ListView из базы данных sqlite, используя пользовательский SimpleCursorAdapter. Мой пользовательский SimpleCursorAdapter: public class DomainAdapter extends SimpleCursorAdapter{ private Cursor dataCursor; private LayoutInflater mInflater; public DomainAdapter(Context context, int layout, Cursor dataCursor, String[] from, int[] to) { super(context, layout, dataCursor, from, to); this.dataCursor = […]

Почему у ContentValues ​​есть метод put, который поддерживает Boolean?

Класс ContentValues ​​содержит метод, который позволяет вводить Booleans в коллекцию значений. AFAIK, SQLite не содержит родной логический формат, который Android мог бы вставить в значение boolean. Итак, какое волшебство делает Android за кулисами, чтобы сохранить эти ценности? Кроме того, почему нет бесплатного метода getBoolean для курсора? Для меня это кажется довольно неудобным надзором за дизайном, […]

Почему INSERT и UPDATE более медленны на Android 4.0?

Когда Android 4.0 стал доступен для Nexus S еще в декабре 2011 года, мы провели некоторое тестирование производительности: http://greendao-orm.com/2011/12/17/sql-performance-in-android-4-0/ Удивительно, что производительность UPDATE и INSERT снизилась наполовину (!) После обновления до Android 4.0 на том же телефоне. У нас не было времени для дальнейшего расследования, но, возможно, между тем кто-то еще сделал? Можно предположить, что […]

Хранить длинную стоимость в базе данных android

Как хранить длинные значения в базе данных Android SQLite? Я пытаюсь сохранить значения времени (миллисекунды), которые поступают в формате длинного типа.

Android: используйте UUID в качестве первичного ключа в SQLite

Мое приложение должно синхронизироваться с другими пользователями приложений (там есть собственные устройства). Я также хочу поддерживать автономное редактирование, которое синхронизируется с другими пользователями, когда пользователь подключается к Интернету. Таким образом, Пользователь А меняет (пока он в автономном режиме) некоторые данные (в словах, которые он обновлял) или добавлял новые записи в базу данных. Когда пользователь A […]