0
때마다하는 거리 조각에서 슬쩍하고, 비동기 작업을 돌려 다른 대안

조각 Viewpager 진행

을 실행 재
@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     if (isVisibleToUser) { 
      new LoadGlobalNews().execute(); 
     } 

    } 

비동기 작업을 실행하기 위해 조각 클래스에서 위의 방법을 사용하고 있는가, 내 문제가 대화

+0

증분 메소드가 호출 될 때마다 카운트. 이제 카운트가 1 일 때만 AsyncTask를 호출하십시오. – Vinay

답변

1

ViewPager.setOffscreenPageLimit을 사용하십시오.

From the docs

:

설정 유휴 상태에 뷰 계층의 현재 페이지의 양쪽에 보존 할 페이지의 수. 필요한 경우이 이상의 페이지는 어댑터에서 다시 작성됩니다.

mYourViewPager.setOffscreenPageLimit(mYourPagerAdapter.getCount()); 

업데이트

private boolean mLoadedNews; 

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser && !mLoadedNews) { 
     new LoadGlobalNews().execute(); 
     mLoadedNews = true; 
    } 
} 
+0

'setUserVisibleHint (boolean isVisibleToUser)'를 사용하는 이유는 다른 부분의 진행 대화 상자가 응용 프로그램이로드 될 때 모두 표시되기 때문에 비동기 작업을 실행하기로 결정했기 때문입니다. 프래그먼트가 표시되면 이것이 의미하는 바는 모든 프래그먼트가 표시된다는 것입니다. 비동기 태스크가 다시로드됩니다. 어떤 식 으로든 막을 수 있습니다. –

+0

@RuongaDan 제가 생각할 수있는 가장 쉬운 방법은'isVisibleToUser'를 검사 할 때 여분의 조건을 추가하는 것입니다. – adneal

+0

이것은 내 주요 문제를 해결하지만 또 다른 것을 생성합니다. 두 번째 조각의 내용이 첫 번째 조각에로드되고이 내용이 비어 있고 조각 하나의 내용이 표시되지 않습니다. 어떤 생각인지. –

관련 문제