diff --git a/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt b/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt index eb9b658..ff35437 100644 --- a/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt +++ b/app/src/main/java/com/sw/inbound/objbox/FoodModule.kt @@ -13,6 +13,7 @@ import com.sw.inbound.utils.ImageUtil import com.sw.inbound.utils.ext.toJsonString import io.objectbox.Box import io.objectbox.kotlin.boxFor +import io.objectbox.query.IdWithScore import io.objectbox.query.Query import org.pytorch.IValue import org.pytorch.Module @@ -117,13 +118,18 @@ object FoodModule { box.query(Food_.foodVector.nearestNeighbors(floatArray, queryCount)).build() //查询比较分数 // val tempList = query.findWithScores().sortedBy { it.score }.map { "${it.get().name}|${it.get().foodIdx}|${it.score}" } - val idScoreList = query.findIdsWithScores() + var idScoreList: List + try { + idScoreList = query.findIdsWithScores(); + } finally { + // 先关闭Query,释放Cursor + query.close() + } val nameScoreList = mutableListOf() idScoreList.forEach { nameScoreList.add(IdNameScore(id = it.id, name = box.get(it.id).name?:"", score = it.score)) } Timber.tag("FoodModule").d("queryFood数据:${nameScoreList.toJsonString()}") - query.close() return nameScoreList } fun getFoodScoreList(bitmap: Bitmap, queryCount: Int = 15): List {