如果不使用内容提供商,如何设置自定义加载程序的数据源? 我需要从sqlite填充listview,但不想为数据库创建内容提供程序,而是希望使用loader从数据库中获取数据。那么如何将sqlitedatabase设置为自定义加载器的数据源呢?
答案 0 :(得分:0)
两个选项:
android:exported="false"
条目设置<provider>
。CursorLoader
并修改它以查询SQLiteDatabase
而不是ContentResolver
。然后你只需要传递一个对数据库的引用。请注意,为了使加载程序重新查询,您需要在修改数据库中的数据时正确实现数据更改通知。通常,这是使用URI上的contentResolver.notifyChange()
完成的。对于选项1,它应该是您为CursorLoader提供的URI;对于选项2,您可以在加载程序中手动设置ContentObserver
并执行相同类型的通知,或者您可以向加载程序实现一些其他信号以发出重新查询。