SQLite
 sql >> база данни >  >> RDS >> SQLite

Не може да се предотврати изтичането на обект на SQLiteConnection

Казвате, че сте разгледали много въпроси онлайн, но определено не сте разгледали това или това. Буквално се появи след 5 минути търсене.

Както и да е, ако бях на твое място, за да разреша този проблем, бих включил finally клауза при затваряне на връзката. Това означава, че ще декларирате своя помощник на базата данни като статична променлива на екземпляр и ще използвате модела Abstract Factory, за да гарантирате свойството singleton.

Вашето предупреждение се случва, защото не гарантирате, че само един DatabaseHelper ще съществува във всеки един момент. Ако mInstance обектът не е инициализиран, такъв ще бъде създаден. Ако вече е създаден, той просто ще бъде върнат.

Ето кода:

public ArrayList<ItemSubject> loadDataSubject() {
    ArrayList<ItemSubject> arrayList = new ArrayList<>();
    String select = "select * from " + TABLE_SUBJECT;
    Cursor cursor = getData(select);
    
    
    if (cursor != null && cursor.getCount() > 0) {
    try {
        cursor.moveToFirst();
            for (int i = 0; i < cursor.getCount(); i++) {
                String id = cursor.getString(cursor.getColumnIndex(TAG_ID));
                String course = cursor.getString(cursor.getColumnIndex(TAG_COURSE_NAME));
         ....
                ItemSubject objItem = new ItemSubject(id, courseId,...);
                arrayList.add(objItem);
                cursor.moveToNext();
           }
       finally {
           if (cursor != null)
           cursor.close();
       }
   }
   return arrayList;
}    

Но тъй като казвате, че единственият ми принос към въпроса ви (на който вече беше отговорено в други публикации) е да прецизирам липсата ви на елементарен английски, тогава не съм толкова сигурен дали можете да приемете това като адекватен отговор.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изпратете приложение с база данни

  2. Как работи SQLite Nullif().

  3. Добавете дни към дата в SQLite

  4. Как работи функцията Strftime() в SQLite

  5. Android SQLite LIKE escape заместващ знак