Day 27--Lifecycles and logging(下)

fragment的lifecycle与activity类似,但多了几个专属於fragment的

观察fragment启动时的lifecycle

  1. onAttach(),当fragment与其所属activity关联时
  2. onCreate(),作用类似activity的onCreate(),但除了inflate layout
  3. onCreateView(),fragment的inflate layout
  4. onActitityCreated(),当fragment所属之activity onCreate()完成後,接着fragment onActitityCreated(),然後fragment才能存取其所属activity
  5. onStart(),让fragment变可见,与activity的onStart()同时
  6. onResume(),让fragment has focus,与activity的onResume()同时

再来切换到其它fragment,观察原本TitleFragment

  1. onPause(),当fragment lost focus,与activity的onPause()同时
  2. onStop(),当fragment不再显示於萤幕,与activity的onStop()同时
  3. onDestroyView(),收回fragment的View所占用的资源

再切回原本的fragment

因为fragment仍在此activity中,所以开始的onAttach()与onCreate()就不再呼叫了
将从onCreateView()开始
不清楚这里是否就是fragment不同於activity,要把define跟inflate layout分开在onCreate()和onCreateView()

观察按home键与最近程序返回,fragment的lifecycle模式都与activity一样
进background都是onPause() onStop()
回foreground都是onStart() onResume()


另外同时加上activity的log,同时观察二者
开启时

切换别的fragment时

换原本fragment时

按home让app进background时

叫回foreground时


  • 需要进行越频繁越轻的运作,应该放越上方的区块,例如频繁切换app时,一下onPause一下onResume
  • 相对越下方的区块,负责越重的运作,例如重新啓动app,onCreate负责inflate layout,define listeners等比较繁重的工作,只会在activity初始化时执行一次

参考


<<:  Day27-OTO

>>:  (29) 试着学 Hexo - 奇淫技巧 - 快速上传你的图片到 imgur

【Day22】[演算法]-选择排序法Selection Sort

选择排序法(Selection Sort),原理是反覆从未排序数列中找出最小值,将它与左边的数做交换...

Day2 线性回归(Linear Regression)

线性回归是什麽? 讲人话就是利用以往蒐集的资料建立一个预测未来走势的模型,当输入新的值[自变数(in...

五套最佳SoundCloud下载器--〖2022〗

SoundCloud 是一家位於德国柏林的在线音频分发平台。 对於那些喜欢好音乐并想找到更多背景音乐...

What is the reason behind Pacbell email login issue?

There could be a number of reasons behind the Pacb...

[DAY 15] getValues 与 setValues

上一次说到了getRange 与 getDataRange 但是这只是「取得资料的位置与范围」 如果...