안녕하세요. 3개의 Fragment 화면을 넣을 ViewPager를 생성하고 여기에 맞는 PagerAdapter를 생성하였습니다.
이때 PagerAdapter안에 들어갈 Fragment등록하였습니다. 각 Fragment 별 역할이 달라 Fragment를 생성하면서
이를 상위 액티비티의 Fragment 배열에 저장하였습니다. 처음에는 잘 돌아가다가 홈화면으로 나갔다가 다시
들어와 onResume을 타다보면 fragment들이 다 NULL이 되어있습니다.
[1] Activity에서 아래와 같이 배열 선언
MainFragment mainFragment = new MainFragment[3];
[2] ViewPager에 Adapter로 선언할 PagerAdapter에서 Fragment를 아래와 같이 선언하고 상위 액티비티에 저장
public class PagerAdapter extends FragmentPagerAdapter
{
public Context mContext;
public PagerAdapter(FragmentManager fm, Context context)
{
super(fm);
this.mContext = context;
}
@Override
public Fragment getItem(int position) {
mainFragment[position] = MainFragment.newInstance(position, mContext);
return mainFragment[position];
}
}
위와 같이 FragmentPagerAdapter에서 fragment를 생성하면 안되는것인가요? 정 안되면 onResume에서
fragment가 널이면 다시 생성해주면 되겠지만 Memory Leak이 발생할것 같은데 그것보다 Fragment를
관리할수 있는 다른 방법이 있는지 궁금합니다. 고수님들께서 아신다면 조언 부탁드리겠습니다.