gpt4 book ai didi

android - Robospice/Retrofit后台服务访问数据库

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:29 26 4
gpt4 key购买 nike

我已经成功地创建了一个 Retrofit API Rest 客户端进行 GETPOST 调用,并将其合并到 Robospice 作为后台服务。

但是,我希望 Robospice 服务连接到数据库并异步保存从 GET 调用中检索到的对象。使用 Retrofit Callback 类似乎是显而易见的方法,但连接到数据库需要 Context 并且我担心泄漏 Context.

那么,让 Robospice SpiceService 在处理请求之前和之后将数据保存到数据库的最佳方法是什么?

最佳答案

你的问题对我来说真的很模糊。不明白为什么不能使用RS正常的持久化机制。如果您这样做,在执行请求时保存您的数据将非常容易。

也许我遗漏了什么。因此,如果您的要求真的是自己持久化数据,那么您提出的方法看起来是正确的。您可以在请求中注入(inject) spice 服务本身(例如,请参阅如何在 RetrofitSpiceService 中覆盖 addRequest)。然后,该请求将包含一个上下文,该上下文可用于回调内部或请求本身的持久性。

最近我使用改造和 RS 编写了一个 POST 请求。我更改了 POST 请求的签名以返回 Void。然后稍微修改改造转换器以处理这种情况并返回空值。如前所述,该请求通过注入(inject)接收了 spice 服务,并且可以对数据库执行一些操作。

这里是一些代码,用于将应用程序注入(inject)来自 spice 服务的请求中。

    @Override
public void addRequest(CachedSpiceRequest<?> request,
Set<RequestListener<?>> listRequestListener) {
if (request.getSpiceRequest() instanceof MySpiceRequest) {
MySpiceRequest<?> mySpiceRequest = (MySpiceRequest<?>) request
.getSpiceRequest();
mySpiceRequest.setApplication(this.getApplication());
}
super.addRequest(request, listRequestListener);
}

关于android - Robospice/Retrofit后台服务访问数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com