Android技术栈(一)从Activity迁移到Fragment,android应用开发实训总结

本文探讨了Android中Fragment的使用,强调了Fragment在现代Android应用中的重要性,尤其是它如何在一定程度上替代Activity。文章指出,理解Fragment的生命周期至关重要,并介绍了如何在Fragment不显示时进行操作。此外,还讲解了动态添加和管理Fragment的方法,包括使用Back Stack,以及如何在Fragment中实现onBackPressed()的拦截和处理。最后提到了AndroidX库的使用,以及在迁移过程中的注意事项。
摘要由CSDN通过智能技术生成

不过事物总是曲折发展的,经过Google多年的调教,现在的Fragment的功能已经很完善了,在很多场合,足以在很多场合替代Activity的存在,上面的一些问题也得到了比较妥善的解决,如果看完这篇文章,相信你会找到答案。

image.png

巨佬JakeWharton曾经建议:一个App只需要一个Activity.

这说的就是单ActivityFragment模式.使用这种模式有许多好处:

  • 首先第一个好处就是流畅,要知道Activity属于系统组件,受AMS管理并且自身是一个God Object,它的开销是很大的,单Activity模式可以为我们节省很多资源,还可以避免资源不足时,被前台Activity覆盖的Activity被杀掉导致页面数据丢失的情况(因为只有一个Activity,除非JAVA堆内存到达系统要杀掉一个程序的临界点,否则系统最不倾向于杀死前台正在运行的Activity);
  • 其次就是可以将业务逻辑拆分成更小的模块,并将其组合复用,这在这在大型软件系统中尤为重要(新版知乎就使用了单ActivityFragment这种模式),因为我们都知道Activity的是无法在多个页面中复用的,而此时Fragment就有了它的勇武之地,它作为轻量级的Activity,基本可以代理Activity的工作,并且他是可复用
  • 再者,使用Fragment可以为程序带来更大的灵活性,我们都知道在Activity之间传递对象,对象需要序列化,这是因为Activity作为系统组件,是受AMS管理的,而AMS属于系统进程,不在当前程序运行的进程中,启动Activity时需要暂时离开当前进程去到AMS的进程中,而AMS则会将你准备好的数据(也就是Intent之类的)用来启动Activity,这也是FragmentActivity之间的区别之一,Activity属于系统组件,可以在别的进程运行(组件化/多进程方案),而Fragment只是框架提供给我们的的一个组件,它必须依附于Activity生存,并且只能在当前进程使用,但这同时也意味这它可以获得更大的灵活性,我们可以给Fragment传递对象而无需序列化,甚至可以给Fragment传递View之类的对象,这都是Activity不容易做到的.

2.要使用Fragment你必须知道的一些事情

首先要提一点,如果你要学习Fragment那么你至少得是掌握了Activity的,如果你还不了解Activity,笔者建议你先去看一些Activity相关的文章,再来进阶Fragment.从下面的文章开始,默认读者已经了解了Activity的生命周期等相关知识。

Fragment拥有Activity所有的生命周期回调函数并且由于自身特点还扩展了一些回调函数,但是这些与

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值