Я использую базу данных SQLite в приложении, я пытался добавить функцию, которая получает некоторые данные из базы данных в виде хэш-карты
public HashMap<Integer, ArrayList<OrderCustomer>> getOrderCustomers (){
SQLiteDatabase db = getReadableDatabase();
String query = "SELECT * FROM " + TABLE_ORDER_CUSTOMER + " ;";
Cursor cursor = db.rawQuery(query,null);
cursor.moveToFirst();
HashMap<Integer, ArrayList<OrderCustomer>> result = new HashMap<>();
while (!cursor.isAfterLast()){
int fkOrder = cursor.getInt(cursor.getColumnIndex(OC_FK_ORDER));
int fkCustomer = cursor.getInt(cursor.getColumnIndex(OC_FK_CUSTOMER));
double cost = cursor.getDouble(cursor.getColumnIndex(OC_COST));
OrderCustomer orderCustomer = new OrderCustomer(fkOrder, fkCustomer);
orderCustomer.setCost(cost);
ArrayList<OrderCustomer> orderCustomers = new ArrayList<>();
if(result.containsKey(fkOrder)){
orderCustomers = result.get(fkOrder);
result.remove(fkOrder);
}
orderCustomers.add(orderCustomer);
result.put(fkOrder, orderCustomers);
}
db.close();
cursor.close();
return result;
}
, но так как я добавил эту функцию, приложение даетмне бесконечный цикл из следующих:
Background sticky concurrent mark sweep GC freed 133964(3MB) AllocSpace objects, 0(0B) LOS objects, 7% free, 29MB/31MB, paused 34.098ms total 149.711ms
и не запускается, а иногда он падает, OutOfMemoryError указывает на эту функцию.Что не так в функции, которая вызывает эту ошибку?PS: приложение работает нормально сразу после первой установки, это может помочь.Пожалуйста, спросите, если у вас есть дополнительная информация.