Je sais qu'il ya des discussions similaires à celui-ci, mais je les ai lu et essayé les méthodes pour résoudre le problème, mais il ne semble pas le faire. je reçois le:Android base de données de fermeture SQLite entre 2 activités
close() n'a jamais été appelé base de données explicity/données/données ...
demande ne fermez pas la base de données ou un curseur qui a été ouvert ...
Mon erreur ne se produit pas directement, cela arrive après un moment, quand je suis allée et venir entre les deux activités.
J'utilise deux activités qui ont toutes deux besoin d'une connexion à la base de données. Mon idée était pour la première activité de fermer la base de données avant le début de l'autre activité. Voici mon code:
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
movies = new MoviesData(this);
cursor = getTitles();
showTitles(cursor);
}
@Override
public void onPause() {
movies.close();
super.onPause();
}
@Override
public void onResume() {
movies = new MoviesData(this);
super.onResume();
}
Ceci est ma première activité, le second est à peu près semblables et a commencé sur un ButtonPress. La classe MoviesData est juste une classe vide SQLiteOpenHelper trouvée ci-dessous.
public class MoviesData extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "movies.db";
private static final int DATABASE_VERSION = 1;
public MoviesData(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
Je sais maintenant quand l'erreur est affiché. Si je quitte l'application, puis l'ouvre à nouveau et essaie de faire quelque chose que l'erreur montre. J'ai essayé de fermer la base de données « OnDestroy() », mais cela ne suffit pas non plus ...
Si je n'ai pas le onResume(), quand je repousse de la deuxième activité pour revenir au premier, je n'ai rien montrer plus. J'ai besoin d'obtenir l'information en utilisant cursor = getTitles() –
alors vous devriez utiliser des données statiques – sravan