1

我不清楚 Refrofit 适配器和 API 类应该放在 Android 中的什么位置?我应该使用 Application 类还是 Singleton 来保留适配器?API接口类怎么样?

  RestAdapter myRestAdapter;   // where should I keep this guy?

 MyAPI mApi = myRestAdapter.create(MyAPI.class);  // and how about this guy?

我有一些不同的 api,例如 MyApi1、MyApi2,它们在应用程序的不同点在片段内部被调用。

谢谢

4

2 回答 2

11

这两个都应该被视为单例,并且只创建一次。

包含通用请求执行器、共享的RestAdapterHTTP 客户端配置、远程服务信息等。这些应该为每个 API 接口共享。

API 接口也应该是单例的。它们是线程安全的,并且在创建时需要一些初始处理(最小,但非零)。

于 2014-01-21T06:11:56.000 回答
0

Retrofit 1.7 不允许执行特定于请求的操作,特别是RequestInterceptor. 因此,我使用了一个单例地图,其中每个 API 都有自己的RestAdapter. 通过这种方式,我可以控制特定于 API 的 Headers 等。

RestAdapter如果需要,我还让我的库的使用者能够为一次性场景创建本地 API+组合。

于 2014-10-22T16:18:36.930 回答