У меня есть 2 приложения для Android, первое (написанное на Kotlin) предоставляет данные для второго приложения с помощью контент-провайдера. Как я могу вернуть курсор в функцию запроса асинхронно?
**In ContentProvider class**
override fun query(p0: Uri, p1: Array<String>?, p2: String?, p3: Array<String>?, p4: String?): Cursor? {
val cursor = MatrixCursor(arrayOf("id", "name"))
// async fun
ContactsHelper(context).getContacts {
for (contact in it) {
cursor.newRow()
.add("id", contact.contactId)
.add("name", contact.firstName)
}
}
return cursor
}
**in ContactsHelper class**
fun getContacts(ignoredContactSources: HashSet<String> = HashSet(), callback: (ArrayList<Contact>) -> Unit) {
Thread {
callback(...)
}.start()
}
Возвращенный курсор не содержит данных. Как я могу добавить данные в курсор и затем вернуть его?