SQLiteException: database is locked
SQLiteException: database is locked
Проблема вот в чем. Вычисления с использованием базы данных могут вестись с двух мест одновременно. Но в таком случае выдает ошибку "database is locked". Вести все последовательно нельзя. Вычисления тяжелые, если их проводить в одном потоке, то приложение просто повиснет на 5-10 секунд, я уже не говорю про слабенькие телефоны.
Подскажите кто нибуть, как с этим бороться? У меня была мысль вычисления проводить с помощью Handler (ну на подобии очереди что-то).
Подскажите пожалуйста. Очень надо.
Подскажите кто нибуть, как с этим бороться? У меня была мысль вычисления проводить с помощью Handler (ну на подобии очереди что-то).
Подскажите пожалуйста. Очень надо.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: SQLiteException: database is locked
На сколько я знаю, эту проблему можно решить используя ContentProvider.
Точнее на этот вопрос сможет ответить Foenix.
Касаемо подвисаний. Не пойму, Вы обработку в UI потоке делаете?
Точнее на этот вопрос сможет ответить Foenix.
Касаемо подвисаний. Не пойму, Вы обработку в UI потоке делаете?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: SQLiteException: database is locked
Тяжелые вычисления проходят в AsyncTask. Легкие в UI.KamiSempai писал(а): Касаемо подвисаний. Не пойму, Вы обработку в UI потоке делаете?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: SQLiteException: database is locked
Очевидно, легкие не такие уж и легкие. Тут на днях вебинар проходил, там как-раз рассказывалось как это можно узнать.
Немного по AsyncTask. Если API приложения выше 11 можно использовать его и не бояться параллельного обращения к базе. По умолчанию все таски выполняются последовательно. При более низком API они будут выполняться параллельно и этот фокус не прокатит.
Немного по AsyncTask. Если API приложения выше 11 можно использовать его и не бояться параллельного обращения к базе. По умолчанию все таски выполняются последовательно. При более низком API они будут выполняться параллельно и этот фокус не прокатит.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: SQLiteException: database is locked
В том то и дело что на стареньких андроидах такое вылетаетKamiSempai писал(а):Очевидно, легкие не такие уж и легкие. Тут на днях вебинар проходил, там как-раз рассказывалось как это можно узнать.
Немного по AsyncTask. Если API приложения выше 11 можно использовать его и не бояться параллельного обращения к базе. По умолчанию все таски выполняются последовательно. При более низком API они будут выполняться параллельно и этот фокус не прокатит.
Re: SQLiteException: database is locked
да, к.п. решит проблему.
Андроид вообще говоря не предназначен для сложных обработок данных. А что вы там такое обрабатываете, вычисляете?
Андроид вообще говоря не предназначен для сложных обработок данных. А что вы там такое обрабатываете, вычисляете?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: SQLiteException: database is locked
Честно говоря. Приложение называется "Женский календарь". Заказали - я делаю. Сначала мне тоже показалась "Какие там могут быть сложные расчеты ?". А выходит что может. Попробуйте не только просчитать, но еще и спрогнозировать,а если еще и выборка за год. Да и программировал по принципу "пользователь - идиот", с кучей проверок на достоверность данных.
Как показала практика: примерно 6,7% пользовательской аудитории не в состоянии ввести в поле цифру(пришлось для старых версий писать свой NumberPicker), я уже не говорю о датах.
P.S. Что такое " к.п."? извините за незнание.
Как показала практика: примерно 6,7% пользовательской аудитории не в состоянии ввести в поле цифру(пришлось для старых версий писать свой NumberPicker), я уже не говорю о датах.
P.S. Что такое " к.п."? извините за незнание.
Re: SQLiteException: database is locked
к.п.KamiSempai писал(а):На сколько я знаю, эту проблему можно решить используя ContentProvider.
ну, то, что вы говорите - тяжелыми вычислениями не назовешь)) проверки в полях - это ерунда, это к работе с базой данных не относится. Но ты говорил о то, что работа с бд занимает много времени, во всяком случае я так поняла. Возможно, неправильно спроектирована бд. Она отвечает нормальной форме?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: SQLiteException: database is locked
третьей. Доводить до 4 или 5 я считаю излишним.