在我们的聊天应用程序中,我们想使用很酷的新图书馆SQLBrite更新数据库更改的聊天。由于我们的聊天有无限滚动,并且聊天室可以有非常大的消息列表,我们希望将提供给ChatListView适配器的ArrayList拆分为两个列表。检查图形的想法。我们想在数据库中设置一个点,在这个点之上,旧消息将被正常的SQLite查询查询。在该点以下,我们需要设置SQLBrite,这将为我们带来添加到数据库的新消息。每个部分都应填充其对应的ArrayList。并且两个arrayList应该组合在一个适配器中。我的问题是可以吗?如果是,我们如何在单个适配器中组合和处理两个动态ArrayList?编辑11.
由于我无法从BriteDatabase获取SQLiteOpenHelper实例,我如何从我的模型创建编译的插入/更新/删除语句?返回SqlDelightStatement的方法在SqlDelight0.5.1中被标记为已弃用。我正在使用SqlBrite0.8.0,我看到有BriteDatabase#executeInsert(String,SQLiteStatement)等等。 最佳答案 2016年12月27日编辑:SQLBrite版本1.1.0及更高版本现在公开了它自己的getWritableDatabase()值得注意的是,调用
这是我的用例:我正在开发一个应用程序,它通过RESTAPI与服务器通信,并将接收到的数据存储在SQLite数据库中(将其用作某种缓存)。当用户打开屏幕时,必须发生以下情况:数据从数据库加载(如果可用)。应用程序调用API来刷新数据。API调用的结果保存到数据库中。当拦截到数据更改通知时,从数据库重新加载数据。这与呈现的案例非常相似here,但还是有细微差别的。因为我使用的是SQLBrite,DBobservables不会终止(因为那里注册了一个ContentObserver,它将新数据推送到流中),所以像concat这样的方法,merge等将不起作用。目前,我已经使用以下方法解决了这个
我正在使用SqlBrite/SqlDelight在RxJava中实现存储库模式,用于离线数据存储和Http请求改造这是一个示例:protectedObservable>getItemsFromDb(){returndatabase.createQuery(tableName(),selectAllStatement()).mapToList(cursor->selectAllMapper().map(cursor));}publicObservable>getItems(){Observable>server=getRequest().doOnNext(items->{BriteDat