加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

本地SQLite DB的Android Content Provider:为什么?

发布时间:2020-12-12 18:56:29 所属栏目:百科 来源:网络整理
导读:我对 Android开发还很陌生,但是我无法围绕内容提供商,特别是为单个应用程序,单数据库SQLite数据源创建一个(如果有的话)的好处.我可以看到,如果我想使用同步适配器,我需要一个内容提供商,但老实说,Sync API是如此令人沮丧,以至于我认为使用REST滚动我自己的远
我对 Android开发还很陌生,但是我无法围绕内容提供商,特别是为单个应用程序,单数据库SQLite数据源创建一个(如果有的话)的好处.我可以看到,如果我想使用同步适配器,我需要一个内容提供商,但老实说,Sync API是如此令人沮丧,以至于我认为使用REST滚动我自己的远程同步过程没有任何优势.

我也看到通过在我的SQLite数据库上实现内容提供程序,我获得了一个有保证的Android管理单例,但我使用的是AndroidAnnotations,可以为我做单例管理,而且从我读过的内容看起来并不像是只要我正确管理我的开放连接,甚至一定建议使用单一数据库帮助程序.

我错过了什么吗?对于单个数据库应用程序,Content Provider API看起来非常低级且容易出错.特别是“手动”管理URI映射并引入奇怪的抽象层似乎并没有增加太多价值.

那么本地SQLite DB的内容提供商是否有价值?如果是这样,是否有一些框架可以为我生成我的URI映射,或者它是否严格自行滚动?

解决方法

首先,Sync API不仅仅是从服务器加载数据.它控制将同步更新与整个系统中的其他应用程序同步批处理,??在运行之前确保连接,并优化整个系统的电池寿命(如 running Sync Adapters periodically和 transferring data using sync adapters guide中所述).

其次,使用内容提供程序可以非常轻松地利用Loaders框架(也可以在支持库中找到)和CursorLoader,它允许您的UI在内容提供程序中自动更新为数据更改.这可以大大减少整个活动所需的样板量.

如果Content Provider本身的样板是一个问题,那么您当然可以使用注释框架(如ProviGen)自动为您生成绝大多数内容提供程序.

Android中还有一些功能只能在内容提供商的帮助下完成,包括custom search suggestions并将应用程序私有文件共享给其他应用程序(尽管扩展ContentProvider的帮助程序FileProvider类是您需要的大部分内容) .

UI测试可以变得更加容易,您可以使用提供的MockContentProvider来模拟特定的数据集,而无需更改您的活动代码(假设它当然只是从Content Provider加载数据).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读