SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Znaleziono wyciek bazy danych SQLite

Nie jestem pewien, czy używasz SQLiteOpenHelper właściwie... nie potrzebujesz tej myDataBase dziedzinie, chodzi o to, aby zarządzał połączeniem z bazą danych za Ciebie. Nie podklasuj w ten sposób... chyba że robisz coś w onCreate() itp., które nie są tutaj zamieszczone, wygląda na to, że możesz po prostu użyć SQLiteOpenHelper bezpośrednio, tj.:

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

Zakładając, że zakończenie aktywności powinno również zatrzymać zadanie w tle, polecam wywołanie AsyncTask.cancel(true) z Twojej Activity.onPause() . Upewnij się, że baza danych została oczyszczona z onCancelled().

A jeśli twoje zadanie w tle jest jedyną rzeczą, która odczytuje bazę danych, uczyń ją właścicielem instancji SQLiteOpenHelper. Łatwo wpaść w kłopoty z danymi statycznymi, więc najlepiej unikać IMHO. Zrobiłbym coś takiego:

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. Jak Unicode() działa w SQLite

  2. chmod nie powiodło się:EPERM (operacja niedozwolona) w Androidzie?

  3. Dodaj miesiące do daty w SQLite

  4. Android sqlite, limit liczby wierszy w bazie danych

  5. Wyświetlanie danych w RecyclerView