sirve settitle que para java android database sqlite

para que sirve settitle en java



¡Se ha filtrado un objeto SQLiteConnection para la base de datos! Por favor arregla tu aplicación (5)

Mi aplicación me da esta advertencia

Se ha filtrado un objeto SQLiteConnection para la base de datos ''+ data + data + com_example_test + database''. Corrija la aplicación para finalizar correctamente las transacciones en curso y cierre la base de datos cuando ya no sea necesaria.

Pero cierro el objeto db y el cursor después de cada uso.

try { while (cursor.moveToNext()) { ... } } finally { if (cursor != null && !cursor.isClosed()) cursor.close(); } ... db.close();

¿Me pueden ayudar a entender cuál es el problema? ¡¡¡Gracias!!!

¡ACTUALIZAR! Intento esta solución desde esta conexión de SQLite filtrada aunque todo cerrado

y ya no tengo fuga de memoria, ¿es una buena solución?


En mi caso, el error se produjo cuando intentaba descargar datos nuevos y la base de datos debería actualizarse.

Lo resolví creando una instancia de la base de datos llamando a SELECT 0 . Eso causa que la base de datos se actualice, así que después de eso intento descargar los nuevos datos. Y funcionó bien



Simplemente arrastre ese db.close hacia el bloque finally .


Posibles soluciones :

  • No ha not committed the transactions que inició (siempre debe cerrar la transacción una vez que comenzó)
  • Compruebe si ha cerrado los cursores que ha abierto si está utilizando Sqlite (Parece que ha realizado este paso desde el código que ha publicado)
  • Mueva también el db.close para finally bloquear
  • No ha llamado a db.close en una base de datos antes de eliminarlo con context.deleteDatabase(...) y luego dbHelper.getWritableDatabase() a dbHelper.getWritableDatabase() con dbHelper.getWritableDatabase()

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public class MainActivity extends AppCompatActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.main_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()){ case R.id.settings: Log.i("Menu item selected", "Settings"); return true; case R.id.help: Log.i("Menu item selected", "Help"); return true; default: return false; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

Me está dando error de fuga de objeto de base de datos. Aunque la aplicación funciona bien y también se registra en la pestaña Ejecutar, el monitor de Android me muestra el error y no registra la información.