相信大家都用过ViewPager+Fragment,由于ViewPager的缓存机制,每次都会加载3
页。
例如:有四个 fragment 当滑动到第四页的时候 第一页执行onDestroyView(),但没有
执行onDestroy。他依然和activity关联。当在滑动到第一页的时候又执行了
onCreateView()。 生命周期可以自己试一下。
那么问题来了。会出现重复加载view的局面,所以这么做(下面是先人的代码)
@Override
public void onDestroyView() {
Log.i("onDestroyView_Fragment");
if(view!=null){
((ViewGroup)view.getParent()).removeView(view);
}
super.onDestroyView();
}
onDestroy()
销毁fragment对象, 跟activity类似了。
onDetach()
Fragment和Activity解除关联的时候调用。 脱离activity。
可见fragment的销毁还是很优雅地,一个一个的来。
下面贴一下 activity和fragment同时运行时候的 生命周期
开始启动:
05-07 05:55:08.553: I/Log(1990): oncreate 05-07 05:55:08.553: I/Log(1990): onAttach_Fragment 05-07 05:55:08.553: I/Log(1990): onCreate_Fragment 05-07 05:55:08.553: I/Log(1990): onCreateView_Fragment 05-07 05:55:08.553: I/Log(1990): onActivityCreated_Fragment 05-07 05:55:08.553: I/Log(1990): onStart 05-07 05:55:08.553: I/Log(1990): onStart_Fragment 05-07 05:55:08.553: I/Log(1990): onResume 05-07 05:55:08.553: I/Log(1990): onResume_Fragment
按下home按键
05-07 05:55:28.725: I/Log(1990): onPause_Fragment 05-07 05:55:28.725: I/Log(1990): onPause 05-07 05:55:29.221: I/Log(1990): onStop_Fragment 05-07 05:55:29.221: I/Log(1990): onStop










