如何在使用gson转换器时使用改装作为单例?
从@jake沃顿的答案中,您应该只调用 restAdapter.create 一次,并在每次需要交互时重新使用相同的 MyTaskService 实例。这一点我怎么强调也不过分。您可以使用常规单例模式,以确保在任何地方都只有这些对象的单个实例。依赖关系注入框架也可用于管理这些实例,但如果尚未使用它,则有点过分。
这是我的代码
public class MusicApi {
private static final String API_URL = "https://itunes.apple.com";
private static MusicApiInterface sMusicApiInterface;
public static MusicApiInterface getApi() {
if (sMusicApiInterface == null) {
sMusicApiInterface = null;
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_URL)
.build();
sMusicApiInterface = restAdapter.create(MusicApiInterface.class);
}
return sMusicApiInterface;
}
public interface MusicApiInterface {
@GET("/search?entity=musicVideo")
NetworkResponse getMusic(@Query("term") String term);
@GET("/search?entity=musicVideo")
void getMusic(@Query("term") String term, Callback<NetworkResponse> networkResponseCallback);
@GET("/search?entity=musicVideo")
Observable<NetworkResponse> getMusicObservable(@Query("term") String term);
}
}
一切都很好。我正在使用类型适配器,对于每个请求,我需要创建不同类型的gson解析并设置为适配器。
Gson gson = new GsonBuilder().registerTypeAdapter(DiscussionViewMoreContainer.class, new ExplorerDeserializerJson())
.create();
它使我每次都必须创建一个新的resadapter。在我的应用中,某些请求 parallely.is 这种正确的方式运行?