Android开发学习-Activity生命周期
Android是使用任务(Task)来管理活动,一个任务就是一组存放在栈的活动的集合,这个栈也成为返回栈(Back Stack)。默认情况下,启动一个任务便会入栈且处于栈顶,当按下back键或调用finish()方法时会销毁任务且将活动出栈。而系统总会显示栈顶活动给用户。
Activity一般意义上有四种状态:
1、运行状态:活动处于返回栈栈顶。系统不会回收其资源
2、暂停状态:活动不处于栈顶但仍可见。系统一般不会回收其资源
3、停止状态:活动不处于栈顶且不可见。系统可能回收其资源
4、销毁状态:不处于返回栈。系统一般会回收其资源
Activity的7个回调方法:
onCreate():在活动第一次创建时调用
onStart():在活动由不可见变为可见的时候调用
onResume():在活动准备好和用户进行交互的时候调用
onPause():在系统准备去启动或恢复另一个活动的时候调用
onStop():在活动不可见的时候调用
onDestroy():在活动销毁时调用
onRestart():在活动由停止状态变为运行状态前调用
onPause()和onStop():如果启动的新活动时一个对话框式的活动则执行onPause()而不会执行onStop()
需要注意以下几点:
1、Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。一个完整的Activity生命周期会按如下顺序回调:onCreate()-->onStart()-->onResume()-->onPause()-->onStop()-->onDestroy()。称为entire lifetime
2、当执行onStart()时,Activity开始被用户可见(onCreate()执行时,活动不可见)onStart()到onStop()用户是可见的。称为visible lifetime
3、onResume()到onPause()活动是可以和用户进行交互的。称为foreground lifetime
Activity启动模式:
standard:每次启动都会打开新的实例
singleTop:若要启动的activity处于栈顶,则不再新建实例
singleTask:若要启动的activity在Task已存在,则不再新建实例
singleInstance:若要启动的activity已存在,则不再新建实例