Mám zavřít kurzor po každém použití, nebo jej mohu nechat otevřený, dokud nebude pohled zničen?
Závisí Pokud se výsledek kurzoru mezitím nezmění (např. vzdálené připojení upravující DB), je to v pořádku. Nezapomeňte použít CursorLoader
aby Android spravoval váš kurzor automaticky (např. zavře kurzor, pokud vaše aplikace selže).
A totéž platí pro databázi, lze ji otevřít, jakmile je vytvořena aktivita, která obsahuje tento pohled, a zavřít, když je aktivita zničena?
Ano, můžete otevřít v onResume()
a zavřete v onPause()
zpětná volání nebo když víte, že vaše databáze již nebude dotazována.
Když postupuji podle výše uvedeného popisu, neustále se mi zobrazuje chyba „close() nebyla explicitně volána databáze...“
To je normální, pouze pokud vaše aplikace selže. Nemělo by se to stát, pokud to děláte, jak jsem řekl výše.