首先啊说道这个生命周期 第一个就是Activity的生命周期 其次呐就是这个Fragment的生命周期
本篇就是讲述Activity的生命周期 (分析的有不足之处还请留言)
Activity的生命周期有七个(
1.onCreate:页面创建
2.onStart:页面启动 可以显示不可点击
3.onResume:页面聚焦 可以显示可以点击
4.onPause: 页面暂停 可显示不可点击.0
5.onStop:页面暂停 没有界面 但是Activity依然存在
6.onDestroy:页面销毁 调用finish 走的就是这个方法
7.onRestart:当页面暂停后 可以调用两个方法
第一个就是上面的onDestroy销毁Activity
第二个就是调用此方法 调用此方法后不会再重新创建Activity 而是重新启动
也就是说调用onRestart方法走的就是onstart方法不会再次调用onCreate方法)
当我们首次进入应用的时候 生命周期会怎么走?
onCreate--onStart--onResume
首先onCreate顾名思义就是创建的意思 onStart就是启动 onResume聚焦
进入应用首先就是先创建出来这个Activity 但是创键了也看不见啊 这样就走到了start方法 启动
启动之后虽然是可以看见了 但是不能点击 所以就走到了聚焦的方法 这时候的Activity就能可见kedianjil
这些废话就不多说了
说下其他的
进入Activity之后 点击返回键会走哪些方法 具体的之前我只知道最后会走销毁(onDestroy)的方法
具体的也是今天实现了一下
onPause onStop onDestroy
简答明了 先暂停 在停止 在销毁 上面的介绍就不多说了 不知道啥意思可以自己看一下
点击home键
onPause onStop
暂停 停止 如果一直在后台的话 不会都销毁地方法
onPause 一般是用来保存状态的
Activity的销毁过程
onPause--onStop--onDestroy
这大概就是你这样
再说下A到B 会执行哪些生命周期?
A首先会执行onPause(暂停) 用来保存状态 比如输入了东西
B生命周期会onCreate onStart onResume和创建一个新的Activity一样
A会执行onStop
如果我们点击返回键 从B界面返回到A界面 我们会走那些生命周期呐?
B 界面先暂停(onPause) 接着A界面会执行重启(onRestart)的方法接着启动 接着聚焦 B界面执行停止(Stop) 接着B界
面就销毁
如果在B界面按下home键会怎样?A界面会怎样呢?
其实都一样A再跳的B界面的时候已经是暂停了 所以在B界面按下Home键不会再走A的生命周期
B走的生命周期其实和A一样先暂停(onPause)接着停止(onStop)
当然啊这个finish方法具体是怎样呐?
finish方法会走暂停(onPause)接着第一个界面会重新启动(onRestart,onStart,onResume)老一套
接着第二个界面会停止(onStop)接着销毁(onDestroy)当前界面
不管是哪两个页面之间的跳转首先第一步都是先执行第一个界面的暂停(onPause)方法接着走第二个界面的
onCreate onStart onResume 最后走的都是第一个界面的停止(onStop)方法
按下返回键最后都会都销毁 按下home键都会走停止的方法
- Activity生命周期
各个生命周期执行流程:
oncreate()->onstart()->onResume()->onRestart()->onPouse()->onStop()->onDestory()
解读各个生命周期方法:
1.onCreate()
这个方法在每一个Activity类都会有,当我们新建一个Activity类时,一定会重写父类的onCreate方法,onCreate方法会在Activity第一次被创建时调用。我们应该在这个方法中完成Activity的初始化操作,比如说加载布局,初始化布局控件,绑定按钮事件等。
2.onStart()
这个方法在Activity由不可见变为可见时调用。
3.onResume()
这个方法在Activity准备好喝用户交互的时候调用。此时的Activity一定位于返回栈的栈顶,并且处于运行状态。
4.onPause()
这个方法在系统准备去启动或者恢复另一个Activity的时候调用。
5.onStop()
这个方法在Activity完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新Activity是一个对话框式的activity,那么,onPause()方法会得到执行,而onStop()方法并不会执行。
6.onDestory()
这个方法在Activity被销毁之前调用,之后Activity的状态将变为销毁状态。
7.onRestart()
这个方法在Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了。
- Android的启动模式
standard标准模式:
是默认模式,每次启动一个Activity都会创建一个新的实例,无论这个实例是否存在
SingleTop 栈顶复用模式
要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新的Activity;若须要创建的Activity不处于栈顶,此时会又一次创建一个新的Activity入栈,同Standard模式一样。
它的onCreate、onStart不会被系统调用,由于它并没有发生改变。可是一个新的方法 onNewIntent会被回调(Activity被正常创建时不会回调此方法)。
适合推送消息详情页,比如新闻推送详情Activity;
SingleTask 栈内复用模式
若须要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。
SingleInstance 单实例模式
这个是SingleTask加强本,系统会为要启动的Activity单独开一个栈,这个栈里只有它,适用新开Activity和app能独立开的,如系统闹钟
单一实例模式,整个手机操作系统里面只有一个实例存在。不同的应用去打开这个activity 共享公用的同一个activity。
- 横竖屏切换生命周期
1、不设置Activity的Android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3设置Activity的android:configChanges=”orientation|keyboardHidden|screenSize”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。