Android: 与服务器通信的服务 API

Android: Service to communicate with server API

我正在使用 AsyncHTTPClient 与我的服务器 API 通信。

我了解到我必须使用 services 与服务器通信。

1) AsyncHTTPClient 已经是 service 了吗?或者我是否还需要将所有使用 AsyncHTTPClient 的方法放入我自己的 services?或者可以直接从我的活动中调用 AsyncHTTPClient 方法吗?

2) 我不明白 services 应该如何正确使用。假设我不使用 AsyncHTTPClient 但我有几个不同的操作可以调用服务器 API (get realities, get users, post user,等等)。我是否必须将每个操作放入单独的 service 中?如果没有,我如何从同一个服务调用不同的方法?我看到的所有示例总是表明只有 一个 操作会在 Activity.

启动服务时自动调用

3) 我找到了另一个 Android REST 库 Retrofit - 它比 AsyncHTTPClient 有什么优势吗?我需要把它放入services吗?

首先,我会推荐你​​使用Retrofit。之前用过AsynHttp,现在用的是Retrofit,非常满意

关于您问题中的主题:

I've read that I have to use services to communicate with a server.

你在哪里读到的?我不会根据我的请求创建服务,然后所有这些都运行良好。创建请求时的要点是在后台线程中创建它们。因此,如果您不使用像 AsyncHttp 或 Retrofit 这样的库,则必须将您的请求放在 AsynTask class 中,例如。

Is AsyncHTTPClient already a service?

没有。它是一个进行异步 HTTP 请求的库。在 the site of the lib 中,他们说:

所有请求均在您应用的主 UI 线程之外发出也可以在Service或者后台线程中使用.

也就是你可以在一个Service里用,他们没说你一定要在一个Service里用。

站点中的示例介绍了如何使用此库制作 RestClient。这是一个很好的例子。您只需要创建一个静态 class 并放置方法来制作您的帖子、获取等

I can't understand how services should be properly used.

Services 用于后台长运行 操作。将服务与您的库(AsyncHttp 或 Retrofit)一起使用的一种可能方法是,当您想要向服务器发出请求时,即使用户没有使用您的应用程序。因此,您可以创建一个带有计时器的服务,该计时器将以您定义的时间间隔调用服务器。

Retrofit - does it have any advantages over AsyncHTTPClient?

支持 Retrofit,您不必再次将其放入服务中。只有当你需要这个。在他们的网站上,他们说:Retrofit 将您的 REST API 变成了 Java 接口 。这使您的客户端非常简单,并且可以自我记录,因为每次调用您的服务器 API 都将是该接口中的一个方法,我认为这是一个很大的优势。使用 Retrofit 很简单。正如我所说,现在我改用 Retrofit,我可以说,这个库有很好的文档和支持,它有很多用户。所以很容易找到一些bug的解决方案。另一个优点是它已经有了库 GSON,这对于解析您将从服务器 API 接收到的 JSON 非常有用。

当然,谈论优势是危险的,因为您可以找到很多个人意见。参见 this question and its answers。我想那里的一些答案也可以帮助你做出选择。

最后,这里有一些链接,其中包含有关 Retrofit 以及如何使用这个强大的库创建请求的教程。