SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Kebocoran database SQLite ditemukan

Saya tidak yakin Anda menggunakan SQLiteOpenHelper benar... Anda tidak memerlukan myDataBase itu bidang, idenya adalah bahwa ia mengelola koneksi database Anda untuk Anda. Jangan subkelas dengan cara itu... kecuali jika Anda melakukan sesuatu di onCreate() dll yang tidak diposting di sini sepertinya Anda bisa menggunakan SQLiteOpenHelper langsung, yaitu:

SQLiteOpenHelper sqlite = new SQLiteOpenHelper(ctx, DB_PATH+DB_NAME, null,
    DB_VERSION_NUMBER);

Dengan asumsi bahwa mengakhiri aktivitas juga akan menghentikan tugas latar belakang Anda, sebaiknya panggil AsyncTask.cancel(true) dari Activity.onPause() . Anda . Pastikan database dibersihkan dari onCancelled().

Dan jika tugas latar belakang Anda adalah satu-satunya hal yang membaca database, maka buatlah itu memiliki instance SQLiteOpenHelper. Sangat mudah untuk mendapat masalah dengan data statis, jadi sebaiknya hindari IMHO. Saya akan melakukan sesuatu seperti ini:

protected class BackTask extends AsyncTask<String, Integer, String>
{
    private SQLiteOpenHelper sqlite;

    public void BackTask(Context ctx) {
        sqlite = new SQLiteOpenHelper(ctx, DB_PATH+DB_NAME, null,
                                      DB_VERSION_NUMBER);
    }
    @Override
    protected String doInBackground(String... params) 
    {
         try {
                //get requeste data from the database
                //access the web service
                return result;

              } catch (Exception e) { 
         }
         return null;
    }

    @Override
    protected void onCancelled() {
         sqlite.close();
    }

    @Override
    protected void onPostExecute(String result)
         sqlite.close();
         // Update UI here
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menambahkan Nilai Berbeda dengan SQLite Sum()

  2. Cara Mengaktifkan/Menonaktifkan Batasan CHECK di SQLite

  3. Perbarui dengan parameter menggunakan perpustakaan persisten ruangan

  4. Cara membuat Aplikasi Internasionalisasi Offline:Mendukung banyak bahasa

  5. SQLite Buat Tabel