2013-07-26 2 views
3

FragmentStatePagerAdapter가있는 ViewPager가 있습니다.AsynLoaderTask 및 ViewPager

@Override 
public Loader<List<String>> onCreateLoader(int id, Bundle args) { 

    logger.debug("Created loader"); 

    return new AsyncTaskLoader<List<String>>(getActivity()) { 

     @Override 
     public List<String> loadInBackground() { 
      return getResults(); 
     } 

    }; 
} 

@Override 
public void onLoadFinished(Loader<List<String>> loader, 
     List<String> data) { 
    logger.debug("loader finished"); 
    if (data != null) { 
     adapter = new CustomListAdapter(getActivity()); 
     list.setAdapter(adapter); 
     adapter.addAll(data); 
    } 
} 

@Override 
public void onLoaderReset(Loader<List<String>> loader) { 

} 
다음 ViewPager 조각의 onViewCreated 방법 나는 관련 방법의 구현을 검색 할 수 있습니다,이

public void onViewCreated(final View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     list = (ListView) view.findViewById(R.id.list); 
     list.setEmptyView(view.findViewById(R.id.empty)); 
     getLoaderManager().initLoader(0, null, this).forceLoad(); 
    } 
물론 조각이 LoaderCallbacks를 구현

같은 AsyncTaskLoader을 시작 LoadManager의 initLoader 메소드를 호출

내가 겪고있는 문제는 첫 번째 페이지가 모두 예상대로 작동하지만 후속 페이지의 경우 onCreateLoader 호출이 완료되고 AsyncTaskLoader의 loadInBackground 메서드가 호출되지만 onLoadFinished가 호출되지 않으므로 지금 결과가 전달됩니다.

Android 지원 라이브러리를 사용하고 있습니다.

내가 뭘 잘못하고 있는지 알 수 있습니까?

+0

버그 수정본 13,이 도움말에서 시작 : http://stackoverflow.com/a/18302563/1882287 – pavel

답변

0

그래서이 문제에 직면했습니다. 그리고 제가 한 것처럼 정확하게 수행하고있는 것으로 보입니다. 로더가 모두 동일한 ID (예 : 0)를 사용하고 있고 한 페이지로드가 다른 페이지로드보다 오래 걸리는 경우 페이징하는 동안 서로 다시 시작되고 서로 쾅쾅 거리는 것처럼 보입니다. 희망이 여전히이 사람과 관련이있을 수 있기를 바랍니다!