《Android开发艺术探索》之学习笔记(一)Activity的生命周期和启动模式

Activity的生命周期:

onStart、onStop 从是否可见角度来回调;onResume、onPause 从是否位于前台角度来回调。
Activity A -> Activity B :A onPause -> B onResume
系统资源配置发生变化导致Activity被销毁并重新创建。Activity异常销毁,系统回调onSaveInstanceState来保存Activity当前状态。onSaveInstanceState -> onStop -> onStart -> onRestoreInstanceState,onSaveInstanceState和onPause没有既定时序关系。

Activity的启动模式:

  • standard:
    标准模式。每次启动一个Activity都会重新创建一个实例。被启动的Activity运行在启动它的那个Activity所在的栈中。

  • singleTop:
    栈顶复用模式。如果新的Activity已经位于栈顶,它不会被重新创建,系统回调onNewIntent。

  • singleTask:
    栈内复用,单例模式。Activity在一个栈中只有一个实例。如果Activity想要的栈不存在,则先创建栈,然后创建Activity的实例并入栈。如果栈内存在Activity的实例,则把Activity上面的其他Activity全部出栈,使它位于栈顶。TaskAffinity标识Activity所需要的任务栈的名字,默认情况下,所有Activity所需的任务栈的名字都是应用包名。

  • singleInstance:
    独立栈内单例模式。系统为Activity单独创建一个任务栈,栈内只有它的实例。

你可能感兴趣的:(Android开发艺术探索)