안드로이드, FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자. |
FragmentPagerAdpater 나 FragmentStatePagerAdapter 를 사용할 때는 사실 가장 좋은 방법은 getItem() 부분만 잘 구현하고, instantiateItem() 은 건들지 않는 것이 좋다. 만약 건들고 싶다면, ViewPager 가 이 PagerAdapter 들을어떤 방식으로 호출하고, 어떤 루틴을 타는 지 정확히 이해하고 사용하는 것이 좋다.
사실 instantiateItem(), destroyItem(), 그리고 isViewFromObject() 는 이들보다 상위 class 인 PagerAdpater 자체에 정의되어 있는 함수들이다. 그리고 FragmentPagerAdapter 는 이들 사용에 대해 쉽게 해주기 위해서 getItem() 이라는 interface 를 제공하는 것이다.
FragmentPagerAdapter 를 사용할 일이 생긴다면, FragmentStatePagerAdapter 를 사용할 것이 권장된다. 사실 FragmentPagerAdapter 는 한번 사용할 Fragment 들을 생성한다면, 그 이후로 view 를 destroy 하지 않는다. 그래서 memory issue 가 생길 수 있고, process kill 등의 상황에서 복구될 경우에 제대로 view 를 불러오지 않는 경우도 생긴다. 하지만 FragmentStatePagerAdapter 의 경우는 reference 에 설명된 것과 같이 Fragment 를 매번 생성한다. 따라서 정말 많은 fragment 를 다룰 때는 메모리 측면에서 이것을 사용하는 것이 유리하다.
물론 한번 생성하면 계속 재사용을 하는 FragmentPagerAdapter 에 비해 성능은 조금 떨어지지만, process kill 등의 상황에서 훨씬 유연하게 대처한다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] CharSequence.equlas( CharSeqence ) 이야기 (0) | 2013.08.08 |
---|---|
[Java] Iterator 와 ListIterator 의 차이점. (0) | 2013.08.07 |
[android] ContactsContract ( 주소록 ) 사용하기 어렵당. ㅠ (2) | 2013.08.06 |
[android] BItmapLruCache 구현하기. ( for Volley ) (0) | 2013.08.06 |
[Java] SparseArray 뭐하는 녀석이야? (0) | 2013.08.06 |
댓글