2012-11-30 2 views
1

, 나는Viewpager 및 배경 스레드

  1. 이 instantiateItem에있는 ListView의 새로운 인스턴스를 만들려면 다음 과정을 가지고있다.
  2. 이 목록을 ViewPager에 추가하십시오.
  3. 데이터를로드 할 수있는 백그라운드 스레드를 시작하고 UI에 단계에서 만든 목록보기에로드 된 데이터를 설정하는 스레드 메시지를 보내 1

내가 매우 매우 빠른 슬쩍 경우 내 질문입니다, 내 3 단계에서 생성 된 많은 스레드가 실행될 필요가 없다는 것을 추측 할 수 있습니다. 따라서이 상황을 어떻게 처리 할 수 ​​있습니까? 어떻게 이러한 스레드가 실행을 멈추게합니까?

감사

답변

1

나는 ViewPager.setOffscreenPageLimit(MAX_SIZE)을 사용하는 것이 좋습니다 당신이 편안 무엇에 MAX_SIZE를 설정합니다. 페이지가이 범위를 벗어나면

public void destroyItem(ViewGroup container, int position, Object object) 

이 호출됩니다. 이 경우 취소를 호출하여 스레드를 처리하고 해당 페이지에 필요한 다른 작업을 수행 할 수 있습니다. 이렇게하면 스크롤하는 속도에 상관없이 동시에 실행되는 스레드 수가 제한됩니다.

instantiateItem 항목은 사용자가 다시 해당 범위로 스크롤 할 때 다시 호출됩니다.