Android 能否避免为内部使用的数据库实现ContentProvider的开销?
各国: 如果您不打算,您不需要开发自己的提供商 与其他应用程序共享数据 因此,可以理解的是,如果我在应用程序中有一个完全本地使用的SQLite DB,那么就不需要ContentProvider(避免编写大量样板代码),但我没有得到在后台查询该DB的“Android”方法是什么?(尽可能减少重新发明车轮的开销) 这项任务似乎就是我们的目的,如: 加载器使异步加载活动或活动中的数据变得容易 碎片 但是,Android 能否避免为内部使用的数据库实现ContentProvider的开销?,android,android-loadermanager,android-database,android-loader,Android,Android Loadermanager,Android Database,Android Loader,各国: 如果您不打算,您不需要开发自己的提供商 与其他应用程序共享数据 因此,可以理解的是,如果我在应用程序中有一个完全本地使用的SQLite DB,那么就不需要ContentProvider(避免编写大量样板代码),但我没有得到在后台查询该DB的“Android”方法是什么?(尽可能减少重新发明车轮的开销) 这项任务似乎就是我们的目的,如: 加载器使异步加载活动或活动中的数据变得容易 碎片 但是,Loader没有子类可以执行此任务,最接近的子类被设计为与ContentResolver耦合。那么
Loader
没有子类可以执行此任务,最接近的子类被设计为与ContentResolver
耦合。那么,我是不是遗漏了什么?是否有第三方的Loader实现可以做到这一点,或者是否有其他方法
谢谢 A
Loader
是一种与活动生命周期挂钩的机制,可用于异步加载任何类型的数据,无论是ContentProvider、network还是您只需要处理一组数字
在底部有一个名为的加载程序,CursorLoader
实际从中继承。这可用于提供加载程序的基本级别功能。您所要做的就是实现一个
需要加载的数据模型,然后实现AsyncTaskLoader#loadInBackground()
方法来获取它。在本例中,您将查询数据库,然后以您选择的形式返回结果。在这种情况下,您可能不希望返回游标,但希望创建表示游标中的行的Pojo
作为一个快速实现,您可以从数据库中进行查询,而不是使用ContentResolver
aLoader
是一种与活动生命周期挂钩的机制,可用于异步加载任何类型的数据,无论是ContentProvider、网络、,或者你只需要处理一堆数字
在底部有一个名为的加载程序,CursorLoader
实际从中继承。这可用于提供加载程序的基本级别功能。您所要做的就是实现一个
需要加载的数据模型,然后实现AsyncTaskLoader#loadInBackground()
方法来获取它。在本例中,您将查询数据库,然后以您选择的形式返回结果。在这种情况下,您可能不希望返回游标,但希望创建表示游标中的行的Pojo
作为一个快速实现,您可以从数据库中进行查询,而不是使用ContentResolver
“安卓”在后台查询数据库的方式是什么
你要什么都行。使用异步任务
。使用普通的线程
。使用IntentService
。查看您首选的ORM是否有异步选项,或者是否挂接到RxJava/RxAndroid或其他内容
瞧,没有单一的“安卓”方式
正如文档中所述,这个任务似乎就是装载机的任务:
Loader
仅在希望UI层相当直接地处理数据库的情况下才相关。您只能将加载程序
与活动
或片段
一起使用
我错过什么了吗
欢迎您创建自己的AsyncTaskLoader
子类,该子类直接与SQLite一起工作,也许可以使用CursorLoader
的源代码作为灵感来源
是否有第三方的Loader实现可以做到这一点
我曾经有过一次。然而
“安卓”在后台查询数据库的方式是什么
你要什么都行。使用异步任务
。使用普通的线程
。使用IntentService
。查看您首选的ORM是否有异步选项,或者是否挂接到RxJava/RxAndroid或其他内容
瞧,没有单一的“安卓”方式
正如文档中所述,这个任务似乎就是装载机的任务:
Loader
仅在希望UI层相当直接地处理数据库的情况下才相关。您只能将加载程序
与活动
或片段
一起使用
我错过什么了吗
欢迎您创建自己的AsyncTaskLoader
子类,该子类直接与SQLite一起工作,也许可以使用CursorLoader
的源代码作为灵感来源
是否有第三方的Loader实现可以做到这一点
我曾经有过一次。但是,如果不需要,则不需要ContentProvider
- 与其他流程(应用程序)共享数据
- 构建应用程序小部件
- 将您自己的搜索建议与Android快速搜索框集成
。。。而且,您不希望使用自动UI更新来同步和查询数据
实际上,您可以尝试在AsyncTaskLoader
(尊重活动生命周期的AsyncTask)中包装读/写DB操作。此外,您还必须实现自己的观察者来更新视图(还有一个选项可供使用)。如果不需要,则无需使用ContentProvider
- 与其他流程(应用程序)共享数据
- 构建应用程序小部件
- 将您自己的搜索建议与Android快速搜索框集成
。。。而且,您不希望使用自动UI更新来同步和查询数据
实际上,您可以尝试在AsyncTaskLoader
(尊重活动生命周期的AsyncTask)中包装读/写DB操作。此外,您还必须实现自己的观察者来更新视图(一个