Activity知识点整理

1、Activity是与用户进行交互的接口、Android系统通过Activity栈的形式来管理Activity。不在栈的顶端,可能会被系统销毁回收。
2、Activity的四种形态

  • Active:Activity处于栈顶
  • Paused:可见但不可交互
  • Stopped:不可见
  • Killed:系统回收掉

3、Activity生命周期


Activity生命周期

4、异常情况下生命周期
Activity异常终止时(比如横竖屏切换)会调用 onSaveInstanceState() 保存数据,可在onCreate() 和 onRestoreInstanceState() 中拿到保存的数据进行恢复。

5、Activity启动模式

  • standard

系统默认、每次启动一个Activity都会重新创建一个新的实例,依次调用生命周期。

  • singleTop

1、当前栈中已有该Activity的实例并且位于栈顶时,不会新建而是复用栈顶的Activity,并调用onNewIntent()方法。
2、已有该实例但是不位于栈顶,与standard相同
3、当前栈不存在该Activity实例,与standard相同

  • singleTask

首先会根据taskAffinity去寻找当前是否存在一个对应名字的任务栈。如果不存在,则会创建一个新的Task,并创建新的Activity实例加入栈中。
如果存在,则拿到这个任务栈,查找这个任务栈中是否存在该Activity的实例,如果存在这个Activity实例,则会将这个Activity之上的所有Activity出栈,并回调onNewIntent() 方法,如果不存在,则新建一个Activity并入栈。
主要使用场景:应用主页面

  • singleInstance

具有全局唯一性,只会存在一个实例。会独自占有一个task任务栈。

你可能感兴趣的:(Activity知识点整理)