2014-01-20 39 views
1

我不清楚Refrofit適配器和API類應該放在Android中的哪個位置?我應該使用Application類還是Singleton來保持適配器? API接口類怎麼樣?哪裏可以在Android應用程序中保持改裝適配器?

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

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

我有幾個不同的api,如MyApi1,MyApi2,它在應用程序中的不同點處被調用。

謝謝

回答

11

這兩個應該被視爲單身人士,只能創建一次。

RestAdapter包含公共請求執行程序,共享HTTP客戶端配置,遠程服務信息等。這些應該爲每個API接口共享。

API接口也應該是單身人士。它們是線程安全的,創建時需要一些初始化處理(最小化,但非零)。

+0

你的回答很好,但你確實提到了放置它們的最佳位置。在應用程序中保留RestAdapter的單例實例是否是一個好想法?並在onCreate()方法中構建()它?那麼API接口如何?我應該在活動中實例化它們嗎?我有同樣的懷疑,我錯過了這些文件。最好! –

0

改造1.7不允許執行特定於請求的操作,特別是RequestInterceptor。正因爲如此,我使用的是單個地圖,每個API都有自己的地圖RestAdapter。這樣我就可以控制Headers,並且這些特定於API。

如果需要,我還會爲我的圖書館的消費者提供創建本地API + RestAdapter組合的功能。

相關問題