我不清楚在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中的不同点处调用片段。
由于
答案 0 :(得分:11)
这两个都应该被视为单身,只创造一次。
RestAdapter
包含公共请求执行程序,共享HTTP客户端配置,远程服务信息等。这些应该为每个API接口共享。
API接口也应该是单例。它们是线程安全的,在创建时需要一些初始处理(最小但非零)。
答案 1 :(得分:0)
Retrofit 1.7不允许执行特定于请求的操作,特别是RequestInterceptor
。因此,我使用单身人士地图,其中每个API都有自己的RestAdapter
。通过这种方式,我可以控制特定于API的Headers。
如果需要,我还为我的图书馆的消费者提供了为一次性场景创建本地API + RestAdapter
组合的能力。