内容提供者以异步方式返回游标

时间:2019-07-04 11:17:37

标签: android kotlin android-contentprovider

我有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()
    }

返回的游标不包含数据,如何向游标添加数据然后返回它?

1 个答案:

答案 0 :(得分:0)

  

如何异步返回查询函数中的游标?

不能。 query()需要同步。