小编从工作到现在也有一段时间了,从自己刚开始进入Android这个行业,回想自己工作这么长的时间,虽然在公司写一些业务代码有一些自己不会的也都可以实现(通过百度哈哈,有事先百度这个习惯非常好),但是也是我们通过自己来百度实现的效果,在某片博客上看到的
高级开发工程师 = 初级+百度,此处可以当做娱乐,但是能很好的运用百度查找知识也是我们必备的条件之一,其实年前自己就想复习一下自己的Android知识 ,小编也知道自己的基础不是很好,所以想来巩固一下自己的Android基础,所以通过写博客来记录自己的复习之路,小编只是一个小白,有可能写的博客有很多错误之处,希望大家帮忙指出来,我们来共同进步,来共同提升我们的技术!
Android的基础四大组件
Activity(活动)
Service(服务)
BroadcastReceive(广播接收器)
ContentProvider(内容提供者)
所以我们从最开始的Activity(活动开始),先说一下Activity的生命周期
7个方法的场景
onCreate()——————Activity开始创建的时候(Activity生命周期的第一个方法,我们主要将一些初始化的工作放在oncreate方法中,比如setContentView(),虽然可以将一些无关的操作放在onCreate方法中但是这些是不规范的,因为此时Activity还在后台,是不可见的,所以动画之类的初始化操作不应该放在onCreate方法中)
onStart()——————Activity正在被动时(此时Actviity已经是可见了但是还在后台,用户还无法交互,初始化的操作也可以放在这里,但是官方推荐所以将初始化放在onCreate方法中,小编也不知道这是为什么,由于我们的习惯所以初始化放在onCreate中)
onResum()——————Activity启动完成(此时Activity已经出现在前台,并且为可见状态,当B做完操作返回A时可以在在此方法实现界面的刷新)
onPause()——————Activity暂停状态(此时Activity已经不在栈顶了,但我们还是可以看到Activity,并不是因为每一个Activity都会占满全屏幕,有一些弹框的样式也是可以通过Activity来显示,它只是占据屏幕的中间部分,而且在onPause方法中不可以做耗时操作,当A跳转到B时,A的生命周期会先走onPause只会才会走B的生命周期,所以在onPause中做耗时操作有可能会造成ANR,造成应用强制关闭)
onStop()——————Activity停止(此时的Activity已经不可见了,但是Activity的对象还在内存中,可以在onStop中进行资源的回收)
onRestart()——————Activity重新启动(当用户在Activity界面点击Home再次进入Activity会第一时间调用onRestart,所以我们在onRestart中一般不做任何操作)
onDestory()——————Activity销毁(这个时候Activity将会被销毁,而且Activity也会处于不可见的状态,可以将没有在onStop中释放的资源,在这里及时释放,也可以进行一些回收的工作)
到此我们Activity生命周期的7个方法的运用场景就算结束了,这里我们可以发现Activity的生命周期都是成双成对的出现,只有onRestart作为单身自己出现,接下来我们可以看看Activity生命周期的走向,,,
当用户第一次进入Activity
onCreate——>onstart——>onResum
用户在Activity返回到桌面
onPause——>onStop——>onDestory
用户在Activity点击Home
onPause——onStop
再次进入Activity
onRestart——>onStart——>onResum
第一个A的界面操作到此结束,接下来看看两个Activity交互时生命周期是如何变化的
从A进入B
onPause(A)——>onCreate(B)——>onStart(B)——>onResum(B)——>onStop(A)
会先走A中的onPause方法 之后创建B 创建的生命周期的方法和A当时创建是一样的,创建成功之后会调用A的onStop方法
当从B返回到A中时
onPause(B)——>onRestart(A)——>onStart(A)——>onResum(A)——>onStop(B)——>onDestory(B)
到此我们两个Activity之间跳转时生命周期的走向现在就已经完成了,之后我们就可以根据业务的要求在生命周期之间完成了
当横竖屏切换时生命周期的走向
onPause()——>onStop()——>onDestory()——>onCreate()——>onStart()——>onResum()
至此我们的生命周期就到此结束,小编刚开始写,有可能思路不是很清晰 ,写的不是很好,以后慢慢会学习,将自己的写作水平也提升上来,加油,我们一起进步!
网友评论