>内容提供者在多线程环境中工作正常.我不知道ORMlite是否是线程安全的.
>内容提供商可以广播数据库更改.我不知道ORMLite是否有这种支持.
> Android提供一些实用程序,如AsynQueryHandler,CursorLoader来做异步查询数据库.如果我使用ORMLite,我必须明确地创建一个线程或AsyncTask来执行查询.
我是否应该用ORMLite替换内容提供者?
解决方法
但除了你提到的事情外,他们是内容提供商的其他好处.
>如果要在多个应用程序或进程之间共享日期.可能现在你没有任何计划这样做,但似乎你的应用程序在数据库上很重,如果您计划与第三方或另一个应用程序共享您的数据,您可以随时与内容提供商选择.
>内容提供商是Android的所有版本的标准,也意味着您的应用程序是安全的.我很确定ORMLite也是稳定的.但是,您是否真的想要承担这一风险,特别是如果不节省您的时间,或者您没有任何业务要求. Android API已经碎片化了吗?
>如果要将数据上传到云端,可以很容易地与SyncAdapter集成
>使用android安全和权限功能.
现在我正在开展一个项目,我们有大约20个桌子.我已经为每个表创建了一个DAO.其中基本内部使用内容提供商.
DAO->内容提供者 – > sql Lite Open Helper
Class XyzDao{ private final Context mContext; XyzDao(Context context){ this.mContext=context; } public String getMyData(){ //content provider code return myData; } public void setMyData(String x,int y,double z){ //content provider code to set the data } }
我可以没有内容提供商,现在,目前的要求,将工作正常,但仍然我选择这条路线.你会问大概是为什么?
>异步操作
>轻松与平台/云端集成.
>减少代码少错误这么少的戏剧(想想如果我必须实现我们刚才讨论的那些任务)
而且,最好的部分是从任何活动我可以简单地使用我的DAO访问数据库.
或者,您可以直接从DAO访问SQLLiteOpenHelper.
在一天结束时,每个选择都取决于您的业务需求.如果你有很多持久性对象,ORMLite可能是一个不错的选择.