Запись в бд из нескольких потоков
Запись в бд из нескольких потоков
Здравствуйте!
Столкнулся с такой проблемой, в приложении есть бд. Когда мне нужно записать или прочитать данные, я открываю подключение, делаю что-то и закрываю подключение. Понадобилось реализовать сервис который будет каждые 5 сек, писать "некие" данные в бд. Возникла проблема с одновременным доступом, то есть сервис что-то пишет в бд, и в это время бд нужна и приложению. Поможет ли реализация ContentProvider в приложении для решения этого вопроса, или же нужно как-то реализовать очередь доступа к базе, если да то как это делается? Где можно про это почитать, так как мне найти не удалось, может искал не правильно. Или может для сервиса нужно отдельно сделать свою базу данных и когда нужны данные то просто обращаться к сервису за данными?
Заранее благодарен!
З.Ы.
В приложении 2-е базы данных... Есть ли сложности написания ContentProvider в таком случает? Насколько я понимаю два хелпера и флаг для понимания с какой базой работать, но что-то мне подсказывает, что граблей там еще много...
Столкнулся с такой проблемой, в приложении есть бд. Когда мне нужно записать или прочитать данные, я открываю подключение, делаю что-то и закрываю подключение. Понадобилось реализовать сервис который будет каждые 5 сек, писать "некие" данные в бд. Возникла проблема с одновременным доступом, то есть сервис что-то пишет в бд, и в это время бд нужна и приложению. Поможет ли реализация ContentProvider в приложении для решения этого вопроса, или же нужно как-то реализовать очередь доступа к базе, если да то как это делается? Где можно про это почитать, так как мне найти не удалось, может искал не правильно. Или может для сервиса нужно отдельно сделать свою базу данных и когда нужны данные то просто обращаться к сервису за данными?
Заранее благодарен!
З.Ы.
В приложении 2-е базы данных... Есть ли сложности написания ContentProvider в таком случает? Насколько я понимаю два хелпера и флаг для понимания с какой базой работать, но что-то мне подсказывает, что граблей там еще много...
Re: Запись в бд из нескольких потоков
З.Ы.Ы.
Или, может, выше написанное не правильный подход к решению "задачи"?
Или, может, выше написанное не правильный подход к решению "задачи"?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Запись в бд из нескольких потоков
Контент провайдеры были сделаны как раз для работы из нескольких потоков.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Запись в бд из нескольких потоков
Спасибо. А не будет ли проблем с попыткой одновременной записи в бд, и тем что у меня 2-е бд? Дело в том, что переписать приложение под контент провайдер будет довольно трудоемкой задачей, не хочется наткнуться на "большие грабли".KamiSempai писал(а):Контент провайдеры были сделаны как раз для работы из нескольких потоков.
Re: Запись в бд из нескольких потоков
На самом деле база нужна одна, а не две. Под контент провайдер переписать на самом деле не сложно, сложно вначале в нем разобраться.
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: Запись в бд из нескольких потоков
а зачем?Foenix писал(а):На самом деле база нужна одна, а не две. Под контент провайдер переписать на самом деле не сложно, сложно вначале в нем разобраться.

Re: Запись в бд из нескольких потоков
на другой волне. Какой еще чужой код?
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: Запись в бд из нескольких потоков
контент провайдер нам дали готовый. чужой - это гугла.Foenix писал(а):на другой волне. Какой еще чужой код?

Re: Запись в бд из нескольких потоков
В моем случае лучше 2-е использовать, а не одну с таблицами из двоих бд, меньше проблем. По крайней мере так казалось по началу.Foenix писал(а):На самом деле база нужна одна, а не две. Под контент провайдер переписать на самом деле не сложно, сложно вначале в нем разобраться.