Я использую один и тот же курсор несколько раз в пользовательском представлении в его различных методах. Должен ли я закрывать курсор после каждого использования или я могу держать его открытым до тех пор, пока вид не будет уничтожен? И то же самое для базы данных, может ли он быть открыт, как только активность, которая держит это представление, создается и закрывается, когда действие уничтожается? Я постоянно получаю сообщение об ошибке «close() никогда не вызывался явным образом в базе данных ...», когда я делаю, как описано выше.Когда нужно закрыть курсор и db?
ответ
Должен ли я закрывать курсор после каждого использования или я могу его открыть до вид разрушен?
Зависит. Если результат курсора не будет изменяться (например, удаленное соединение, изменяющее БД), тогда это нормально. Не забудьте использовать CursorLoader
, чтобы Android автоматически управлял курсором (например, закройте курсор, если ваше приложение выйдет из строя).
И то же самое для базы данных, она может быть открыта, как только деятельность, которая держит этот вид создается и закрывается, когда деятельность уничтожается?
Да, вы можете открыть в onResume()
и близких по onPause()
обратных вызовов, или когда вы знаете, ваша база данных не будет запрашиваться больше.
Я постоянно получаю сообщение об ошибке «close() никогда не назывался явным образом в базе данных ...», когда я делаю, как описано выше.
Это нормально, только если ваше приложение аварийно завершает работу. Не должно произойти, если вы делаете это, как я сказал выше.
Вы хотели бы закрыть все соединения с БД, когда они вам не понадобятся. Это нормально, если вы будете нуждаться в них позже, т. Е. Закрыть соединение, когда действие должно быть уничтожено.
Вы можете попытаться переместить свой дБ и код курсора на onResume и onPause, чтобы избежать этой ошибки. Но я полагаю, что более чистым способом будет реализация LoaderCallbacks в вашей деятельности. Вы считали это?
- 1. Когда нужно закрыть курсор в MySQLdb?
- 2. Когда мне нужно закрыть соединение db?
- 3. Когда закрыть курсор в Android?
- 4. SQLite Когда мне нужно закрыть db и курсор? Должен ли я использовать асинхронный вызов?
- 5. Когда нужно закрыть NSOutputStream?
- 6. Когда нужно закрыть SolrSearcher?
- 7. Узел sqlite3 когда закрыть db
- 8. Мне нужно закрыть сеанс db в prestashop
- 9. , когда нам нужно закрыть MongoConnection
- 10. Когда закрыть курсор, используемый в SimpleCursorAdapter
- 11. Где закрыть курсор, используя адаптер и асинтез?
- 12. Идиома, чтобы закрыть курсор
- 13. Как безопасно закрыть курсор и базу данных?
- 14. Вам нужно закрыть курсор в хранимой процедуре T-SQL?
- 15. Как закрыть курсор в MongoKit
- 16. Когда мне нужно закрыть процесс NodeJS?
- 17. как мне закрыть этот курсор?
- 18. Android, когда нужно открывать и закрывать соединения db?
- 19. Когда вам не нужно закрывать курсор в оракуле?
- 20. Когда мне нужно закрыть соединение mysqli (Database)?
- 21. Где я должен закрыть курсор?
- 22. нужно POST и закрыть окно, когда пользователь нажимает кнопку отправить
- 23. Мне нужно закрыть соединение mongodb?
- 24. Когда мне нужно закрыть открытое соединение MySQL в моем классе?
- 25. Как закрыть DB
- 26. Мне нужно закрыть соединение db в команде [django]
- 27. дизайн карты и нужно называть курсор мыши
- 28. Нужно ли закрывать курсор, если moveToFirst() - false?
- 29. Когда я должен закрыть курсор, который я поставлю в ListView
- 30. Мне нужно закрыть аудиоклип?
ОК. Любая идея, откуда эта ошибка может возникнуть? db открывается в onCreate() и закрыт onStop(), так как же он все еще говорит, что он не закрыт? –