Activity的启动模式

  • standard 标准模式:
    系统默认模式,每次启动一个activity都会创建一个新的实例压在栈顶,不管这个activity是否已经存在。

     

  • singleTop 栈顶单例
    如果新Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建,所以它的启动三回调就不会执行,同时Activity的onNewIntent()方法会被回调.如果Activity已经存在但是不在栈顶,那么作用于standard模式一样.

  • singleTask 栈内单例
    创建这样的Activity的时候,系统会先确认它所需任务栈已经创建,否则先创建任务栈.然后放入Activity,如果栈中已经有一个Activity实例,那么这个Activity就会被调到栈顶,调用onNewIntent(),并且singleTask会清理在当前Activity上面的所有Activity.(clear top)

  • singleInstance 全局单例
    加强版的singleTask模式,这种模式的Activity只能单独位于一个任务栈内,由于栈内复用的特性,后续请求均不会创建新的Activity,除非这个独特的任务栈被系统销毁了

Activity的堆栈管理以ActivityRecord为单位,所有的ActivityRecord都放在一个List里面.可以认为一个ActivityRecord就是一个Activity栈

posted @ 2016-07-21 14:41  吴添龙  阅读(143)  评论(0编辑  收藏  举报