android и sqlite: иногда вставка длится более 900 мс - PullRequest
0 голосов
/ 06 марта 2012

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

ContentValues cv = new ContentValues();
cv.put("timestamp", timestamp);
cv.put (..., ...);

db.insert("datatable", "id", cv);

Это обычно длится около 50 мс, но после некоторых вставок длится более 900 мс и возвращается к 50 мс. Поскольку вставки в БД выполняются в основном потоке, длинные вставки (более 900 мс) блокируют мой пользовательский интерфейс.

У кого-нибудь есть идея избегать таких длинных вставок?

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

Делать это в главном потоке - плохая идея, но ответить на конкретный вопрос:

У кого-нибудь есть идея избегать таких длинных вставок?

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

1 голос
/ 06 марта 2012

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

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