Android开发— Activity生命周期和fragment的生命周期

(图片就借鉴一下其他作者的,见谅!)
Activity的生命周期在业务逻辑上的处理一定要慎重!!!
Activity生命周期
Fragment的生命周期同样十分重要,并且要常用frgment懒加载方案更要注意这种方式,其生命周期图
frgment
同时我们都知道 Fragment 是依赖于 Activity 存在的,它们的生命周期很相似;同样的有一张图说明了

在案列和原理得到可以得到:
Fragment的onAttach() 和 onCreate() 在与 Activity 第一次关联时调用,onDestroy() 和 onDetach() 在主 Activity 销毁时才会被调用;并且Fragment 通过 addToBackStack() 只涉及到 onCreateView() 和 onDestroyView() 之间的生命周期,所以说add() 和 replace() 不会对 Fragment 的整个生命周期产生影响,但是 add() 方法会造成 主Activity上的Fragment 叠加显示;在我们开发过程中经常使用Activity,Fragment和ViewPager 结合使用,通过 hide() 、 show() 来隐藏、显示Fragment,此时 Fragment 只改变了可见性,通过测试这并不涉及fragment和主Activity的生命周期的改变。但是会有Activity数据传递到Frgment做处理显示或者从Frgment数据传递到Activity,我的处理办法都是在Frgment类中创建可访问方法传递数据进去(Frgment向Activity也同样可以)当然用bundle和采用接口方式也是极好的,这要看个人喜好。
Activity,Fragment和ViewPager 结合使用中,根据需求显示隐藏特指的Frgment我的采用方式是:

 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 transaction.add(R.id.fl_activity_XXX, mXXXFragment).commitAllowingStateLoss();
 transaction
             .hide(mXXXFragment)
             .show(mNowFragment);
     //mXXXFragment表示当前的frgment,mNowFragment表示要添加显示的frgment           
  1. 系统配置改变(屏幕切换等),可在配置文件中设置android:configChangeds 或者 android:screenOrientation="portrait"
  2. 系统资源不足,Activity按照优先级从低到高(后台,可见非前台,前台)被销毁。
  3. 抛出异常销毁与重建activity时:
    根据需求在AndroidManifest.xml设置启动模式和在基类中设置
/**
     * 初始化保存的数据
     */
    protected void initInstanceState(Bundle savedInstanceState) {

    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值