fragment使用(二)

   上一篇讲到用fragment代替activity,做主要的界面呈现,其主要难点就是要对fragment的生命周期非常熟悉。相对于activity,fragment的最大好处,就是其非常灵活的生命周期。我们可以将界面的任务分成两部分,一部分作UI的展示,另一部分则是和UI无关的后台任务。因为这两部分生命周期是不同的。UI会随着屏幕尺寸,屏幕水平/竖直的方向变化时,生命周期需要重新进行;而非UI任务所需要的生命周期则是,只要Activity没有结束,就不要中断或者重走生命周期。

  因此,我们可以创建一个没有UI界面的Fragment。只需要在OnCreate中调用setRetainInstance(true);这个Fragment就不会跟随Activity的生命周期一起重建。同时我们要记得在onDetach方法中,将回调回收,防止activity实例的泄露。  

/**
 46    * 设置回调对象为null,防止我们意外导致Activity实例泄露(leak the Activity instance)
 47    */
 48   @Override
 49   public void onDetach() {
 50     super.onDetach();
 51     mCallbacks = null;
 52   }

 

你可能感兴趣的:(fragment使用(二))