没有内容提供商的定制加载

时间:2015-08-23 18:19:32

标签: android

如果不使用内容提供商,如何设置自定义加载程序的数据源? 我需要从sqlite填充listview,但不想为数据库创建内容提供程序,而是希望使用loader从数据库中获取数据。那么如何将sqlitedatabase设置为自定义加载器的数据源呢?

1 个答案:

答案 0 :(得分:0)

两个选项:

  1. 使用ContentProvider并为AndroidManifest.xml中的android:exported="false"条目设置<provider>
  2. 复制source code for CursorLoader并修改它以查询SQLiteDatabase而不是ContentResolver。然后你只需要传递一个对数据库的引用。
  3. 请注意,为了使加载程序重新查询,您需要在修改数据库中的数据时正确实现数据更改通知。通常,这是使用URI上的contentResolver.notifyChange()完成的。对于选项1,它应该是您为CursorLoader提供的URI;对于选项2,您可以在加载程序中手动设置ContentObserver并执行相同类型的通知,或者您可以向加载程序实现一些其他信号以发出重新查询。