override fun getCount(): Int {
println(“Server: getCount”)
return 100
}
}
ContentProvider定义
接着注册并定义一个运行在服务端进程的 ContentProvider 对象:
class BinderProvider : ContentProvider() {
override fun onCreate(): Boolean = true
override fun query(
uri: Uri, projection: Array?, selection: String?, selectionArgs: Array?, sortOrder: String?
): Cursor {
return BinderCursor.binderCursor
}
override fun getType(uri: Uri): String? = null
override fun insert(uri: Uri, values: ContentValues?): Uri? = null
override fun delete(uri: Uri, selection: String?, selectionArgs: Array?): Int = 0
override fun update(uri: Uri, values: ContentValues?, selection: String?, selectionArgs: Array?): Int = 0
}
这里 query 方法中返回的 Cursor 对象是一个 BinderCursor.binderCursor, BinderCursor 继承自 MatrixCursor 类,其内保存有服务端 Binder 对象: