由于安卓已经诞生快二十载,其最初的开发思想与现代的开发思想已经大相径庭,特别是Jetpack库诞生之后,项目中存在着新老思想混杂的情况,让许多的新手老手都措手不及,项目大步向屎山迈进。为了解决这个问题,开发者必须弄懂新旧两种开发模式,这就是《安卓现代化开发系列》诞生的意义,本系列并不会包含隐晦难懂的代码,一切的文字都是以理解本质为主,起到一个抛钻引玉的作用。
生命周期的前世今生
1.1、前世——初识篇
天地初开,一切皆为混沌的时代,安卓宇宙中诞生了名为Activity
(活动)的组件,Activity
是Android应用中最关键的组件,一个Activity
通常对应的是App的一个页面,当手机使用者在不同的页面之间导航的时候,新的Activity
会诞生,同时也会在特定的时候销毁。一个页面的诞生之初到它销毁的这段时间,名为「生命周期」。
理解并掌握生命周期是每一个Android修炼者的必修功力,因为生命周期的每一个阶段均代表Activity
处于不同的状态之中,一旦错误处理生命周期周期,修炼者轻则内伤残疾(手机耗电过多,丢失信息),重则走火入魔(程序崩溃)。
关于生命周期,江湖中一直流传着一张「Activity生命周期总览图」,但个中奥秘,却鲜为人知,因此少有人能够修炼到最高境界:
由图可见,Activity
的生命周期中,提供了6种回调:onCreate()
、onStart()
、onResume()
、onPause()
、onStop()
、onDestroy()
,需要特别注意的是,这仅仅是一种回调,与我们通常的认识不同都是,生命周期的某个阶段是指一个时间段 ,而回调或者说事件只是一个瞬间,换句话来说,onCreate并不是指生命周期中存在一个阶段名为onCreate,而是Activity
触发了onCreate事件,即将进入已创建阶段。