Ten tytuł może zabrzmieć trochę szaleńczo, ale to właśnie sprawia, że jestem zdezorientowany. Moja aplikacja intensywnie korzysta z lokalnych operacji na bazach danych. Zgodnie z sugestiami w dokumentach systemu Android i niektórych blogach rozszerzyłem klasę SQLiteOpenHelper
i zdefiniowałem tam wszystkie operacje DB. Ponieważ niektóre operacje DB wykonywane są w wątkach, otwieranie i zamykanie bazy danych powoduje pewną liczbę IllegalStateExceptions
. Zrobiłem więc pomocnika DB jako Singleton
i rozwiązałem te problemy, pozbywając się operacji open
i close
dla każdej akcji DB. Teraz wszystko działa dobrze, mimo że nigdy nie zamykam bazy danych.Co się stanie, jeśli nie zamknę bazy danych w systemie Android?
- Mój błąd polega na tym, że trzeba zamknąć DB?
- Jeśli tak, jakie jest właściwe miejsce, czy jest to
onDestroy
głównej działalności lub gdzieś indziej? - Jeśli nie zamykam DB, jakie są skutki uboczne?