-
- Fragment中onCreateView与onActivityCreated的区别,以及fragment中生命周期的利用
-
- 生命周期
-
区别
生命周期
这是我在StackOverflow找到的一段解释
onCreate():
The
onCreate()
method in aFragment
is called after theActivity
’sonAttachFragment()
but before thatFragment
’sonCreateView()
.
In this method, you can assign variables, get
Intent
extras, and anything else that doesn’t involve the View hierarchy (i.e. non-graphical initialisations). This is because this method can be called when theActivity
’sonCreate()
is not finished, and so trying to access the View hierarchy here may result in a crash.
onCreateView():
After the
onCreate()
is called (in theFragment
), theFragment
’sonCreateView()
is called. You can assign yourView
variables and do any graphical initialisations. You are expected to return aView
from this method, and this is the main UI view, but if yourFragment
does not use any layouts or graphics, you can returnnull
(happens by default if you don’t override).
onActivityCreated():
As the name states, this is called after the
Activity
’sonCreate()
has completed. It is called afteronCreateView()
, and is mainly used for final initialisations (for example, modifying UI elements). This is deprecated from API level 28.
To sum up…
… they are all called in the
Fragment
but are called at different times.
The
onCreate()
is called first, for doing any non-graphical initialisations. Next, you can assign and declare anyView
variables you want to use inonCreateView()
. Afterwards, useonActivityCreated()
to do any final initialisations you want to do once everything has completed.
主要就是说:
onCreate():
该
onCreate()
在的方法Fragment
是后叫Activity
的onAttachFragment()
,但在这之前Fragment
的onCreateView()
。
在此方法中,您可以分配变量、获取
Intent
附加项以及任何其他不涉及视图层次结构的内容(即非图形初始化)。这是因为可以在Activity
’sonCreate()
未完成时调用此方法,因此尝试访问此处的 View 层次结构可能会导致崩溃。
onCreateView():
在之后
onCreate()
被调用(在Fragment
)的Fragment
的onCreateView()
叫。您可以分配View
变量并进行任何图形初始化。您应该View
从此方法返回 a ,这是主 UI 视图,但如果您Fragment
不使用任何布局或图形,则可以返回null
(如果不覆盖,默认情况下会发生)。
onActivityCreated():
顾名思义,这是在
Activity
’sonCreate()
完成后调用的。它在 之后调用onCreateView()
,主要用于最终的初始化(例如,修改 UI 元素)。这已从 API 级别 28 开始弃用。
综上所述…
…它们都被调用,
Fragment
但在不同的时间被调用。
首先
onCreate()
调用 ,用于进行任何非图形初始化。接下来,您可以分配和声明View
要在onCreateView()
. 之后,用于onActivityCreated()
在一切完成后进行您想要进行的任何最终初始化。
生命周期图:
区别
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/a320890a0eda5eb3ee1f515d845e5fc3.jpeg)
结语
看到这篇文章的人不知道有多少是和我一样的Android程序员。
35岁,这是我们这个行业普遍的失业高发阶段,这种情况下如果还不提升自己的技能,进阶发展,我想,很可能就是本行业的职业生涯的终点了。
我们要有危机意识,切莫等到一切都成定局时才开始追悔莫及。只要有规划的,有系统地学习,进阶提升自己并不难,给自己多充一点电,你才能走的更远。
千里之行始于足下。这是上小学时,那种一元钱一个的日记本上每一页下面都印刷有的一句话,当时只觉得这句话很短,后来渐渐长大才慢慢明白这句话的真正的含义。
有了学习的想法就赶快行动起来吧,不要被其他的事情牵绊住了前行的脚步。不要等到裁员时才开始担忧,不要等到面试前一晚才开始紧张,不要等到35岁甚至更晚才开始想起来要学习要进阶。
给大家一份系统的Android学习进阶资料,希望这份资料可以给大家提供帮助。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
片转存中…(img-fb1uk05Z-1712536435300)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!