该Activity被系统销毁。
当一个Activity处于暂停状态或停止状态时就随处可能进入死亡状态,因为系统可能因内存不足而强行结束该Activity。
注:还有一种情况由于系统内存不足可能在Paused状态中直接被系统杀死达到killed状态。
oncreate()-onstart()-onResume()-onRestart()-onPouse()-onStop()-onDestory()
onCreate():
当我们点击activity的时候,系统会调用activity的oncreate()方法,在这个方法中我们会初始化当前布局setContentLayout()方法。
onStart():
onCreate()方法完成后,此时activity进入onStart()方法,当前activity是用户可见状态,但没有焦点,与用户不能交互,一般可在当前方法做一些动画的初始化操作。
onResume():
onStart()方法完成之后,此时activity进入onResume()方法中,当前activity状态属于运行状态(Running),可与用户进行交互。
onPouse()
当另外一个activity覆盖当前的acitivty时,此时当前activity会进入到onPouse()方法中,当前activity是可见的,但不能与用户交互状态。
onStop()
onPouse()方法完成之后,此时activity进入onStop()方法,此时activity对用户是不可见的,在系统内存紧张的情况下,有可能会被系统进行回收。
所以一般在当前方法可做资源回收。
onDestory()
onStop()方法完成之后,此时activity进入到onDestory()方法中,结束当前activity。
onRestart()
onRestart()方法在用户按下home()之后,再次进入到当前activity的时候调用。
调用顺序onPouse()-onStop()-onRestart()-onStart()-onResume()。
AActivity:onCreate()-onStart()-onResume()-onPouse()
BActivity:onCreate()-onStart()-onResume()
AActivity:onStop()-onDestory()
AActivity:onCreate()-onStart()-onResume()-onPouse()
BActivity:onCreate()-onStart()-onResume()
outState参数作用:
数据保存:Activity声明周期结束的时候,需要保存Activity状态的时候,会将要保存的数据使用键值对的形式保存在Bundle对象中;
Activity被销毁的时候调用,也可能没有销毁就调用了;
按下Home键:Activity进入了后台,此时会调用该方法;
按下电源键:屏幕关闭,Activity进入后台;
启动其它Activity:Activity被压入了任务栈的栈底;
横竖屏切换:会销毁当前Activity并重新创建;
onSaveInstanceState方法调用注意事项:
用户主动销毁不会调用:当用户点击回退键或者调用了finish()方法,不会调用该方法;
调用时机不固定:该方法一定是在onStop()方法之前调用,但是不确定是在onPause()方法之前还是之后调用;
布局中组件状态存储:每个组件都实现了onSaveInstance()方法,在调用函数的时候,会自动保存组件的状态,注意,只有有id的组件才会保存;
关于默认的super。
onSaveInstanceState(outState):该默认的方法是实现组件状态保存的;
方法回调时机:在Activity被系统销毁之后恢复Activity时被调用,只有销毁了之后重建的时候才调用,如果内存充足,系统没有销毁这个Activity,就不需要调用;
–Bundle对象传递:该方法保存的Bundle对象在Activity恢复的时候也会通过参数传递到onCreate()方法中;
1。
当前进程activity正在与用户进行交互。
2。
当前进程service正在与activity进行交互或者当前service调用了startForground()属于前台进程或者当前service正在执行生命周期(onCreate(),onStart(),onDestory())
3。
进程持有一个BroadcostReceiver,这个BroadcostReceiver正在执行onReceive()方法
1。
进程持有一个activity,这个activity不再前台,处于onPouse()状态下,当前覆盖的activity是以dialog形式存在的。
2。
进程有一个service,这个service和一个可见的Activity进行绑定。
activity的onStop()被调用,但是onDestroy()没有调用的状态。
该进程属于后台进程。
改进程没有任何运行的数据了,且保留在内存空间,并没有被系统killed,属于空进程。
该进程很容易被杀死。
授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。
不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
activity生命周期(这篇足够
cantclimbthetree:生命周期其实是一个看似简单,但是基于系统后台清理是一个非常复杂的东西,当app处于onpause和onstop状态时,有可能会因为其他app需求内存,而杀死别的app,但是由于部分app存在服务功能,杀死的顺序又有区别,等等很多种情况。
所以不要单纯认为app打开了,占用后台小就不会被杀死
activity生命周期(这篇足够
