SQLite
 sql >> база данни >  >> RDS >> SQLite

Кога трябва да затворя курсор и db?

Трябва ли да затварям курсора след всяка употреба или мога да го държа отворен, докато изгледът не бъде унищожен?

Зависи. Ако резултатът от курсора няма да се промени междувременно (например отдалечена връзка, променяща DB), тогава всичко е наред. Не забравяйте да използвате CursorLoader за да накара Android да управлява автоматично курсора ви (напр. затворете курсора, ако приложението ви се срине).

И същото за базата данни, може ли да бъде отворена, след като дейността, която държи този изглед, бъде създадена и затворена, когато дейността бъде унищожена?

Да, можете да отворите в onResume() и затворете в onPause() обратни извиквания, или когато знаете, че вашата база данни няма да бъде запитвана повече.

Постоянно получавам грешка „close() никога не е бил извикан изрично в базата данни...“, когато правя както е описано по-горе.

Това е нормално само ако приложението ви се срине. Това не трябва да се случва, ако го правите, както казах по-горе.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете таблица с два или повече външни ключа с помощта на Android Room?

  2. Къде Android съхранява версията на базата данни на SQLite?

  3. Библиотеката на стаята може ли да копира db от папката с активи?

  4. SQLite - Импортиране на данни от CSV файл

  5. Има ли методи, които помагат при разрешаването на често срещани проблеми със SQLite?