Kotlin Этот Курсор должен быть освобожден после использования с #close - PullRequest
0 голосов
/ 02 февраля 2019

Как правильно закрыть курсор в Kotlin после использования.Я знаю, как сделать это в Java, но не имеет значения, что я делаю в Kotlin, он все равно выдает предупреждение, чтобы закрыть его.

Я пытался:

        val cursor = context!!.getContentResolver().query(DbProvider.CONTENT_URI_VERSES, null, where, null, null)!!
        if (cursor.moveToFirst()) {
            try {
                arabicTextTV.text = cursor.getString(cursor.getColumnIndex(DbHelper.COL_ARABIC1))
            } finally {
                cursor.close()
            }
        }

и современным способом:

        val cursor = context!!.getContentResolver().query(DbProvider.CONTENT_URI_VERSES, null, where, null, null)!!
        if (cursor.moveToFirst()) {
            cursor.use {
                arabicTextTV.text = cursor.getString(cursor.getColumnIndex(DbHelper.COL_ARABIC1))
            }
        }

enter image description here

enter image description here

1 Ответ

0 голосов
/ 02 февраля 2019
        context?.contentResolver?.query(DbProvider.CONTENT_URI_VERSES, null, where, null, null)
        ?.use {
            if (it.moveToFirst()) {
                arabicTextTV.text = it.getString(it.getColumnIndex(DbHelper.COL_ARABIC1))
            }
        }

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/use.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...