2016-04-20 2 views
1

В приложении для Android, что является лучшим способом для поделиться клиентским экземпляром http?Лучший способ обмена экземпляром httpClient между действиями?

Я знаю, что, вероятно, я должен просто поделиться данными сеанса и создать экземпляр http-клиента для каждого действия, но исключить этот подход, как я могу достичь своей цели без совместного использования экземпляра, созданного в одном из действий (как описано here)?

Как я могу разделить объекты с помощью getContext() в каждой деятельности?

Благодаря

+1

Создать одноэлементный класс, который держит ссылку на HttpClient. – Avi

+0

И как мне поделиться им между действиями? Спасибо –

+0

Пожалуйста, смотрите решение, если у вас есть другой сценарий, который здесь определяется. Спасибо – Avi

ответ

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; 
     } 
    } 
Смежные вопросы