2017-01-08 6 views
0

Я должен делать сетевые вызовы на каждой странице, которая является фрагментом в viewpager.Как эффективно выполнять сетевые вызовы в viewpager

Проблема в том, что ViewPager называет onCreateView() смежных фрагментов, имеющих сетевые запросы (я использую переоснащение), что делает диалог выполнения запроса дооснащения еще видимого после создания запроса сети.

viewPager.setOffscreenPageLimit(1); 

Android позволяет установить минимальное значение 1 в setOffScreenPageLimit.

Я также использовал

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if(isVisible()){ 
     if(isVisibleToUser){ 
      Log.d("MyTag","TopFramgnet:My Fragment is visible"); 
     }else{ 
      Log.d("MyTag","TopFramgnet:My Fragment is not visible"); 
     } 
    } 
} 

Но этот метод не вызывается каждый раз, когда я перейти к фрагменту. Итак, как эффективно выполнять сетевые звонки?

Вторая проблема заключается в том, как я могу перезагрузить фрагмент, чтобы, если я что-то изменил, он может перезагрузить его вид, повторив сетевой запрос?

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

ответ

0

Думаю, вам нужно включить кеш в модификации. Например

RestAdapter.Builder builder= new RestAdapter.Builder() 
    .setRequestInterceptor(new RequestInterceptor() { 
     @Override 
     public void intercept(RequestFacade request) { 
      request.addHeader("Accept", "application/json;versions=1"); 
      if (MyApplicationUtils.isNetworkAvailable(context)) { 
       int maxAge = 60; // read from cache for 1 minute 
       request.addHeader("Cache-Control", "public, max-age=" + maxAge); 
      } else { 
       int maxStale = 60 * 60 * 24 * 28; // tolerate 4-weeks stale 
       request.addHeader("Cache-Control", 
        "public, only-if-cached, max-stale=" + maxStale); 
      } 
     } 
}); 

Can Retrofit with OKHttp use cache data when offline

После этого вы получите данные из кэша, если данные достаточно новый.

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