问题标签 [sqlbrite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5371 浏览

android - 带有两个 ArrayList 的 Android ListView 适配器

在我们的聊天应用程序中,我们希望使用很酷的新库SQLBrite来更新数据库更改的聊天。由于我们的聊天有无限滚动,并且聊天室可以有非常大的消息列表,我们希望将提供给 Chat ListView 适配器的 ArrayList 拆分为两个列表。检查图形的想法。 在此处输入图像描述

  1. 我们想在数据库中设置一个点,在这个点之上,旧消息将被普通的 SQLite 查询查询。低于这一点,我们要设置 SQLBrite,这将为我们带来添加到数据库的新消息。
  2. 每个部分都应填充其对应的 ArrayList。并且两个arrayLists 应该组合在一个适配器中。

我的问题是可以吗?如果是,我们如何在单个适配器中组合和处理两个动态 ArrayList?

编辑 1 1. 我需要在重置期间保持聊天滚动位置,并且在 ArrayLists 更新期间没有闪烁。

0 投票
0 回答
380 浏览

android - Android SQLBrite insertWithOnConflict

我使用事务通过 SQLBrite 包装器插入多个项目。

问题是某些项目可能已经在数据库中,因此存在冲突。我想使用insertWithOnConflict()带有 IGNORE 的方法来解决冲突。我如何使用 SQLBrite 完成此任务?

0 投票
1 回答
325 浏览

android - 将 SQLBrite 逻辑提取到 Android 中的外部类

在我的聊天应用程序中,我使用 SQLBrite 包装器从本地数据库更新聊天。目前我的活动同时包含 UI 和 SQLBrite。现在我想将 SQLBrite 逻辑提取到外部类。因此,当我的活动还活着时,我需要提取的 SQLBrite 也活着。目前我有订阅者的问题。我还将它提取到外部类,并且它一直在发出查询,尽管一切都与它在活动时一样,并且它正在工作。

这是旧代码,所有内容都在同一个活动中:我该怎么做?

0 投票
2 回答
441 浏览

eclipse - 如何在 Eclipse 中使用 sqlbrite 和 RxJava 1.x?

我如何在 Eclipse 中使用下面给出的这些库。提取这些 zip 文件时没有找到 jar 文件。这些只能与android studio一起使用吗?

https://github.com/ReactiveX/RxJava

https://github.com/square/sqlbrite

谢谢。

0 投票
2 回答
546 浏览

android - 订阅多个 Observable 的适配器

我的问题是适配器订阅多个可观察对象的最佳方式是什么

我有一个具有标题和常规项目类型的适配器。适配器的信息来自使用 Sqlbrite 的数据库。使用 Sqlbrite,我想通过让适配器订阅 observable 来更新标题和列表。

对于第一个 Observable 来说不是问题。在我的片段的 OnResume 中:

但是,然后我尝试向片段添加第二个 Observable

所以,我需要在我的适配器中实现 Action1:

但是,我得到一个重复的类错误。所以我尝试实现一个泛型类型:

但是我收到一个运行时错误,我无法将摘要映射到提交。即便如此,我也不确定铸造泛型是解决问题的最佳方法。

根据 dwursteisen 的反馈:

我将 Summary 类更改为映射到 Submission。我还创建了一个名为“isSummary”的新字段。我按照建议将我的 observable 更改为以下内容:

这会创建一个 Observable,它会触发两次;一个是批量提交列表,另一个是大小为 1 的列表。这个列表实际上是摘要。在我的适配器中:

0 投票
0 回答
110 浏览

java - 使用 sqlbrite 和内容观察者的不同 betweet

我正在阅读关于 sqlbrite 和 RxJava 的介绍。我想知道使用 sqlbrite 和内容观察者来执行诸如监控 sms 数据库更改之类的操作有什么区别。我所知道的是,也许,在 sqlbrite 中,Observables 在至少有一个订阅者订阅它们之前不会发送,但在普通的内容观察者中,observables 总是发送消息。如果我错了,请纠正我,还有其他区别吗?非常感谢。

0 投票
1 回答
608 浏览

android - RxJava - 操作员是一项任务还是整个链是一项任务?

我正在编写一些代码来将记录插入 Sqlite 数据库(如果表为空)。在插入任何数据之前,它会进行 Web 服务调用LoveToDo.basecampClient().fetchMe()以返回一些数据。

我使用 SqlBrite 进行数据库访问,使用 Retrofit 进行 Web 访问。这是我的代码:

不用说,我不认为这是很棒的代码。我想做的是找出如何将这段代码转换成好的东西。因此,让我们使用它并挑选它的可怕之处。

首先,我是否应该将数据库和 Web 服务调用操作结合在一个操作员中。例如:

或者是否有充分的理由将此类操作隔离在链中?

让我烦恼的第二件事是这是一个后台操作 - 不会因为这段代码而直接更新用户界面。这就是为什么有一个无参数的subscribe()函数调用。但是当出现异常时会发生什么?这是否意味着我必须执行以下操作?

顺便说一句,我需要将subscribeOnwhenobserveOn设置为后台线程吗?

第三,链由 SqlBrite 观察者启动。在链的后面,我再次需要 SqlBrite,所以我使用 singleton 访问它LoveToDo.briteDatabase()。这是一个坏主意吗?有一个更好的方法吗?

最后,有没有办法上break;链?如果我可以放弃我正在做的事情而不是在每一步检查丢失的数据,那就太好了

0 投票
1 回答
2264 浏览

java - RxJava 和 Sqlbrite - 使用什么运算符

我开始将 RxJava 与SqlBrite结合使用,但操作员遇到了一些问题zip

假设我有 2 个课程,User并且Tweet.

以及他们各自的 SQLite 表:

和他们各自的 SqlBrite DAO

用户道:

TweetDAO:

正如您在 中看到的UserDao,我尝试使用zipflatMap运算符的组合来填充Tweetfor each的列表User

第一个问题:有没有更好的方法来做到这一点?

第二个问题:那个zip操作符似乎永远挂起并且永远不会完成......我看到它被tweetDao.getTweetsByUser(user)调用但从未被调用......有人知道为什么吗?Funczip

第三个问题:有没有比使用and组合更好的方法将 an 转换Observable<List<T>>为other ?Observable<T>flatMapfrom

该死,RxJava 很强大,但学习曲线非常陡峭......

0 投票
0 回答
170 浏览

android-sqlite - 当 SQLBrite 通知时如何获取数据库表更改的上下文(例如,更改了哪些行以及是否添加或删除了?)

示例用例:我们有一个可以更改状态(已读/未读)的消息列表。新消息可以出现在列表的任何位置,也可以在本地或通过其他方式从后端删除消息。

我们现在实现这一点的方式是,我们使用 SQLBrite 作为我们所知道的本地数据缓存的包装器。

  1. 操作(删除、更改消息状态)通过网络发送远程 API 调用来完成,或者我们轮询后端以查看是否有任何更改。
  2. SQLBrite 缓存作为远程 API 调用结果的副作用进行更新,包括用户发起的操作和定期轮询更新。此时,我们确切地知道发生了什么变化,我们执行 INSERT、UPDATE 或 DELETE 来更新缓存。
  3. UI 观察者被告知重新执行消息表的 SQLBrite 查询,并且 UI 更新自身以响应本地缓存中的更改。例如,使用挂起的删除动画离开一条消息。

问题是,处理第 3 步的最佳方法是什么?我们只剩下对新消息、已删除消息和更新消息进行昂贵的搜索了。我们必须运行整个查询,建立一组消息 ID,然后将其与我们在 UI 模型中知道的消息 ID 进行比较。当我们确切地知道 UI 小部件中需要更新的内容时,我们正在重建我们在第 2 步中获得的信息,但该信息并未在第 3 步中传递给我们的观察者。

有没有更好的方法来构建它,这样我们就可以避免代价高昂的对账步骤?

0 投票
1 回答
612 浏览

android - 将 groupBy 和 toList rxjava 函数与 sqlbrite 一起使用

使用sqlbrite时,使用groupBy()后无法使用rxjava函数toList()。这是我的代码:

这可以正常工作并在所有项目发出时记录它们,但是如果我将其更改为

我没有正确使用 toList() 吗?这可能是因为 sqlbrite 流没有结束,所以 rxjava 在完成 toList() 之前等待更多项目发出?