【发布时间】:2018-10-01 15:49:55
【问题描述】:
我正在尝试将 LiveData 与 Android 上的 Content Provider 一起使用,但是我无法管理它,因为 Provider 查询方法如下:
public Cursor query
所以它返回一个光标,而我需要一个 LiveData。 如果我尝试将查询方法的返回类型更改为
public LiveData<Cursor> query
我得到错误:
"error: query(Uri,String[],String,String[],String) in FaProvider cannot override query(Uri,String[],String,String[],String) in ContentProvider
return type LiveData<Cursor> is not compatible with Cursor"
是否有任何解决方案可以将 LiveData 与 Content Provider 一起使用?
【问题讨论】:
-
创建您自己的 MutableLiveData 类的实现,接收 Content 的 Provider URI 作为参数。在 onActive() 方法中,注册内容提供者观察者,每当调用 onChange() 方法时,将值发布到您的 LiveData:
标签: android android-contentprovider android-livedata