关于fragment与activity的思考,以及出现的问题

fragment 的介绍


可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。

可以把Fragment设计成可以在多个Activity中复用的模块。

当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善用户体验。


fragment和activity

因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。

如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。


我们不讲fragment的原理知识,生命周期,我们说说它自己的方式


首先,很重要的一点,fragment是依靠activity的存在的,就好比fragment是activity的寄生虫,那么当activity 生命开始oncreate() 的时候,这时候fragment就开始 oncreateView(), 请注意,这里是所有的依靠在这个activity 上的fragment 都会执行自己的oncreateView() , 而activity    start()的时候,所以的fragment 都要执行start(), 虽然 这个时候 有些 fragment  还没有出现,但是 都执行啦相应的方法,那么就会出现这么一个问题

fragment依靠的activity启动的时候 会不会变慢,数据请求该写在哪里

重点:*********************************


activity 启动的时候,虽然做啦很多工作,但是速度并没有慢多少,因为他们会在一个时间点,各自做各自的工作,所以速度上并没有影响多少,但是如果你把网络请求写在onstart()方法中 ,那么它要你比你想象的执行的早,一般不建议写在oncreateView()中,无论写在哪里 都要注意一个问题,就是当依靠的这个activity onpause时, 所有的fragment 都会onpause,  但是 依靠的这个activity 重新onresume(),  所有的fragment  都会去 onstart---onresume,  这个时候 你一定要注意,要避免重复的网络请求,以及重复添加view


***********************************************


关于fragment.getAcivity(),我再 说几句, 无论是几层 fragment  每一个都可以得到activity ,这样fragment 才有能力完成一些操作,

在fragment中 得到资源文件  Fragment.this.getActivity().getResources().getDrawble();  等等



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值