在Android应用中,分享http客户端实例的最佳方法是什么?
我知道我应该只是共享会话数据并为每个活动创建一个http客户端实例,但不包括那种方法如何在不全局共享在其中一个活动中创建的实例的情况下实现我的目标(如上所述{{3} })?
如何在每项活动中使用 getContext() 分享对象?
由于
答案 0 :(得分:1)
您可以使用初始化方法创建单例类,然后所有活动都可以通过
获取http客户端ApiManager.getInstance().getClient();
public static class ApiManager {
private static ApiManager sInstance;
private HttppClient mClient;
private ApiManager(Context pContext){
mClient = new HttpClient(pContext);
}
public static void initializer(Context pContext){
if(sInstance == null){
synchronized (ApiManager.class){
sInstance = new ApiManager(pContext);
}
}
}
public static ApiManager getInstance(){
if(sInstance == null){
throw new IllegalStateException("Get Instance can't be called before initializer");
}
return sInstance;
}
public HttppClient getClient() {
return mClient;
}
}