본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자.

by 돼지왕 왕돼지 2013. 8. 7.
반응형


 안드로이드, FragmentPagerAdapter? 

  FragmentStatePagerAdapter 사용도 고려해보자.

 


[android] 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 등의 상황에서 훨씬 유연하게 대처한다.






반응형

댓글