2016-08-31 2 views
0

У меня есть фрагмент, где я отправляю запрос на сервер. Этот тип действия должен быть в onResume() метод, но я не хочу отправлять запрос на сервер каждый раз, когда я помещаю приложение в фоновый режим. Существует ли какое-либо решение?Ручка onResume во фрагменте

запрос, который я хочу отправить

FactoryAPI.getContacts().getContacts(user.getToken()).enqueue(new Callback<ContactsResponse>() { 
      @Override 
      public void onResponse(Call<ContactsResponse> call, Response<ContactsResponse> response) { 
       if(response.isSuccessful()) { 
        contactList = response.body().getContactsList(); 
        sortList(); 
        progressDialog.dismiss(); 
        setRecyclerView(); 
       } 
      } 

      @Override 
      public void onFailure(Call<ContactsResponse> call, Throwable t) {} 
     }); 
+0

Ну что зависит on..when вы действительно хотите, чтобы послать запрос , Вы можете использовать логическое значение, и если запрос уже отправлен, то не позволяйте ему снова отправляться. –

ответ

1

В классе Фрагмент, создать элемент данных типа boolean как,

private boolean isResponseSend; 

В вашем методе onResume(),

@Override 
    public void onResume() { 
     super.onResume(); 
     if(!isResponseSend) 
     { 
       isResponseSend = true; 
       //your code 
       FactoryAPI.getContacts().getContacts(user.getToken()).enqueue(new Callback<ContactsResponse>() { 
      @Override 
      public void onResponse(Call<ContactsResponse> call, Response<ContactsResponse> response) { 
       if(response.isSuccessful()) { 
        contactList = response.body().getContactsList(); 
        sortList(); 
        progressDialog.dismiss(); 
        setRecyclerView(); 
       } 
      } 

      @Override 
      public void onFailure(Call<ContactsResponse> call, Throwable t) {} 
     }); 


     } 
    } 
1

Использование некоторых переменных, как флаг, и отформатируйте ее в onCreate. и на основе флага вы можете обрабатывать запрос.

Смежные вопросы