哪里可以在Android App中保留Retrofit Adapter?

时间:2014-01-20 22:17:55

标签: android rest retrofit

我不清楚在Android中应该保留Refrofit适配器和API类的位置?我应该使用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,可以在app中的不同点处调用片段。

由于

2 个答案:

答案 0 :(得分:11)

这两个都应该被视为单身,只创造一次。

RestAdapter包含公共请求执行程序,共享HTTP客户端配置,远程服务信息等。这些应该为每个API接口共享。

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

答案 1 :(得分:0)

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

如果需要,我还为我的图书馆的消费者提供了为一次性场景创建本地API + RestAdapter组合的能力。