活动状态:
运行状态:
活动位于栈顶,用户可见。
暂停状态:
活动不在栈顶,但是依然可见。内存低的时候,不能被系统杀死。
停止状态:
活动不在栈顶而且完全不可见,它依然保存所有的状态和信息,内存底的时候它会被系统杀死。
销毁状态:
活动在返回栈中被移除就变成了销毁状态。
回调方法:
onCreate():
创建Activity是被回调。
onStar():
启动Activity时被回调。也就是当一个ACtivity变为显示时被回调。
onRestart():
重新启动Activity时被调用,该方法总是在onStart()方法之后执行。
onPause():
暂停Activity时被回调,该方法需要快速执行,因为直到该方法执行完之后,下一个Activity才能恢复。该方法通常用于持久化保存数据。
onResume():
当Activity由暂停状态恢复为活动状态时调用。调用该方法后,该Activity位于栈顶。总是在onPause()方法之后执行。
onStop():
停止Activity时回调
onDestroy():
销毁Activity时回调
生命周期:
完整生存期:
从onCreate()到onDestroy()之间经历的。一般在onCreate()方法里完成各种初始化操作,在onDestroy()释放内存。
可见生存期:
从onStart()方法到onStop()方法之间。在可见生存期之间,活动对于用户总是可见的,即使有可能无法对用户进行交互。onStart()对资源进行加载,onStop()对资源进行释放。
前台生存期:
在onResume()方法和onPause()方法之间。前台生存期中,活动总是处于运行状态,此时的活动时可以和用户进行交互的。
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
启动模式:
系统标准模式:standard
启动一个activity就创建一个activity实例,不管这个实例是否存在于返回栈中,谁启动了这个Activity.
栈顶复用模式:singleTop
在活动启动时候,发现返回栈得栈顶已经是该活动,则直接使用它,而不是创建新的活动实例。
栈内复用模式:singleTask
启动活动之前会在返回栈里检查是否存在该活动实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动出栈,如果没有发现就会创建一个新的活动实例。
单实例模式:singleInstance
它除了具有singleTask模式的所有特性外,还加强了一点,那就是具有此种模式的Activity只能单独位于一个任务栈中,比如Activity A是singleInstance模式,A被启动时系统会为它创建一个新的任务栈,A运行在这个单独的任务栈中,后续的请求均不会再创建A,除非这个单独的任务栈被系统销毁了。
具有单实例模式的活动可以被其他应用程序公用。
https://blog.csdn.net/clandellen/article/details/79257489