问题标签 [robospice]
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.
java - RoboSpice 和 ORMLite - 访问数据
我刚开始将 RoboSpice 用于一个新的 Android 应用程序。RoboSpice 与 ORMLite 和 SpringAndroidSpiceService 一起用于从 REST Web 服务读取 JSON。
目前,我设法:
- 创建自定义 SpiceService
- 很少请求从 WS 获取数据
- 使用 ORMLite 将数据持久化到数据库
...感谢“robospice-sample-ormlite”样本。
我的应用程序的主要部分(底部的问题):
基本活动
飞溅活动
我的香料服务
该应用程序由启动画面(SplashActivity)和其他活动组成。启动画面会在几秒钟后启动 MainActivity(暂时只是一个计时器)。
我想做的是从启动屏幕下载所有数据(RoboSpice 已经将这些数据缓存/保存在 SQLite DB 中),然后从其他活动中访问它。
问题1: 是否可以在SplashActivity之外访问和操作数据库数据?如何(你能提供一些代码示例)?
关于“RoboSpiceDataBaseHelper”的 Wiki 页面对我来说不是很清楚:据说“RoboSpiceDataBaseHelper 用于管理数据库创建和版本管理”,但在下一段中指出某些方法允许“从数据库中查询和检索数据” ”。在 RoboSpice 示例中,没有关于从其他活动中检索数据的内容。如何利用 ORMLite 的力量?
我从 Snicolas阅读了这个 Google Groups 主题:
请注意,RoboSpice 缓存是透明的,并且完全封装在 SpiceService 中。应该可以通过对缓存系统的共享引用(由服务和您的活动共享)直接访问缓存系统(在您的情况下为数据库)。此外,在这种情况下,没有什么可以防止并发访问或数据库不一致等副作用。
又怎样?我完全迷路了:(
编辑 03/01:由于我缺乏对 RoboSpice 和 ORMLite 的能力,我很困惑如何实施这样的解决方案/自己(至少有效地)这样做。我看不到如何使用/组合 RoboSpiceDatabaseHelper、InDatabaseObjectPersister、InDatabaseObjectPersisterFactory...
问题2:
我的最后一个问题与数据访问无关(我拿这个话题来问)。
为什么getSpiceManager().execute(barsRequest, new Integer(1), DurationInMillis.ONE_HOUR, null)
什么都不做(不回调 RequestListener)?事实上,就我而言(启动画面),我不需要回调。我可以避免吗?
谢谢!
java - 尝试在 Android 中将 bing 转换器 API 与 Robospice 一起使用
我需要在我的翻译应用程序中实现 robospice 来完成网络部分。我以前使用过异步任务类,它工作正常,但现在我想通过实现 robospice 来改进我的应用程序。我正在尝试执行以下代码,但它不会抛出任何异常,它只是永远不会执行......
它在 log cat 中显示的最后一件事是 Request First!之后就什么都没有了。它甚至从未到达请求侦听器 onRequestFailure。任何 1 都可以告诉我我做错了什么吗?
android - 如果应用程序进入后台然后进入前台,Robospice 请求永远不会结束?
我正在开发一个使用 RoboSpice 库来调用 REST API 的应用程序。除了一件事,图书馆的一切都很好。我不使用 RoboSpice 中可用的缓存,因此所有请求都是在没有缓存的情况下发出的。现在,当任何请求正在进行并且用户按下主页按钮时,将调用 onStop() 调用 spice 管理器的 shouldStop() ,这会取消注册所有请求侦听器以获取通知。当应用程序再次进入前台时,由于未通知侦听器,因此不会发生 UI 更新。
我不想使用 Robospice 提供的缓存。有没有其他方法可以在不使用缓存的情况下获取 UI 更新通知?
android - 内存差异对象类型上的 RoboSpice 缓存
看看LruCacheObjectPersister.java,这是一个基于 Android LRUCache 的内存对象持久化器。我想扩展这个基类以在内存中缓存字符串或位图旁边的任何 pojos 类。我的目标是在内存中执行多种请求并在缓存中获取结果,它看起来像这样:
我的问题是如何告诉缓存管理器应该在香料服务中支持这些类型,如下所示:
我怎样才能做到这一点?
android - 使用 WiFi Direct 和/或 BT 连接的 Android 设备进行本地 SQL DB 同步的 RoboSpice 或 DataDroid?
我需要通过 WiFi Direct(最好)或 BT 连接两个或多个 Android 设备,它们共享存储在每个设备上的数据库。数据库可以由任何连接的设备更新,并且必须发送更改并更新运行连接到 Wifi Direct 网络的应用程序的任何/所有设备。我真的更喜欢/不能为这个应用程序使用远程服务器。
是否可以挂接 RoboSpice、DataDroid 或其他我不知道的库来处理线程和数据更新?
如果可能的话,应用程序的 UI 是否会在接收到新的远程数据库更新时在屏幕上更新(例如,将当前显示的列表内容更改为远程接收到的更新信息)?
感谢您的任何建议。
编辑:如果有帮助,可以在解决方案中使用 wifi 路由器(未连接互联网)作为接入点。
android - 如何使用 RoboSpice(Splash > Main 活动)连接到待处理的请求?
我对 RoboSpice(高级用法)有一些疑问。
注意:我将 RoboSpice 与OrmLite
.
我的 Android 应用程序由两个主要活动组成:第一个是SplashActivity
(启动时开始),第二个是MainActivity
(在启动画面后 5 秒启动)。我在启动时执行 2 个请求:
飞溅活动
问题
我的应用程序逻辑不是很可靠:我们不能确定在 MainAcitivty 启动时请求是否完成。在 MainActivity 上,我使用 OrmLite 查询我的数据库以获取一些数据并显示它们。因此,如果在 SplashActivity 上启动的请求未完成,我的视图将不显示任何内容。
问题
1)我认为我需要为我的待处理请求添加一个监听器(如果存在这样的请求)。在 RoboSpice Wiki 上,它说使用spiceManager.addListenerToPendingRequest
. 尽管我进行了测试,但我还没有成功地把它拿出来。也许我做错了什么?你能给我代码示例吗? 已解决(见下文)
2)目前,用户在到达主屏幕之前仍在等待 5 秒(定时器 Splash)。如何检查数据是否在缓存中?使用spiceManager.getDataFromCache()
(它考虑到过期时间?)。
3)失败请求的最佳重试策略是什么(a.如果没有再次创建数据库,则在第一次启动时;b.如果数据库存在但数据已过期)?
编辑
问题 #1 已解决(我在原始代码中犯了一个错误) - #2 和 #3 仍然相关。这是做什么(如果它可以帮助某人......):
但我不明白spiceManager.getFromCache
这里的目的......
谢谢!
java - 如何动态更新 Android ExpandableList 数据?
我在片段中有一个 ExpandableListView。我正在使用 RoboSpice onCreateView 向服务器发布请求。我希望能够更新列表两次,一次是从缓存中获取数据,第二次是在响应返回后。由于某种原因,该列表未填充。当我实例化一个新适配器并将适配器设置为列表时,我能够填充它,但由于某种原因,它在某些 android 设备上不起作用。
这是我正在使用的代码:
分段
GroupsExpandableListAdapter
有什么建议么?谢谢!
android - SpiceService with per-request network state checker
RoboSpice service can be configured to be used offline (SampleOfflineSpiceService).
Is it possible to achieve a per-request checking if network is required? E.g.
LoadDataFromFileRequest
don't use network, so network checking should be skipped for these request. All other requests should check for network.Is it recommended to have 2 implementation of
SpiceService
just for this?
android - 从 REST 服务为 Android 持久化实体关系
我正在尝试维护数据库的本地存储,可通过 REST API 访问。我正在尝试为 REST 客户端使用出色的 RoboSpice 和 Spring 库,Jackson 来解析/缓存 JSON 响应,并使用 ORMLite 来持久化生成的对象。
问题是我不知道如何为我得到的 JSON 响应存储外来对象关系。有时 JSON 对象是嵌套的,有时它们由 Id 引用。
典型的系统响应
比赛回应
另一场比赛回应
嵌套对象可以正常工作,但在某些情况下,id 引用会杀死它。我的数据模型有两个类,如下所示。
系统类
比赛班
有两个属性引用 system_id 似乎绝对是个坏主意,但我找不到我想要的行为的替代方案。即使系统对象没有嵌套在竞赛对象中,竞赛也应该能够将关系映射到本地数据库中的系统对象,因为始终提供系统的 id。
我怀疑的另一个问题是我使用了两个对象持久化器,JacksonObjectPersister 和 InDatabaseObjectPersisterFactory(由 RoboSpice 提供,用于 ORMLite)。这样做的原因是因为我不想将对象嵌套在数据库中的列表持久化。据我了解,Jackson 应该缓存来自服务器的 JSON 响应,ORMLite 应该缓存数据模型。
这是我得到的错误
为一个似乎有很多问题的问题道歉,我把头撞在墙上。我将尝试用一个总结来结束这篇文章......
对于我提供的 JSON 响应,有没有办法使用 Jackson 和 ORMLite 拼凑对象关系?
java - 如何使用带有 JSON 数据的 RoboSpice Google Http Java 客户端模块上传文件
我正在使用RoboSpice Google Http Java Client module
并且我正在使用数据成功执行POST
请求。JSON
问题: 我的问题是现在我必须byte[]
在请求中附加数据,POST
但我无法找到任何方法来做到这一点RoboSpice Google Http Java Client module
。
这是我的代码片段:
我尝试使用Multipart HTTP Requests
但它不起作用。