Activity

生命周期

activity生命周期的切换过程.jpg

启动模式

  1. standard:标准模式,系统默认的模式,每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否已经存在。
  2. singleTop:栈顶复用模式。如果新的Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建。如果新的Activity实例已存在但不是位于栈顶,那么新的Activity仍然会被重新创建。
  3. singleTask:栈内复用模式。只要Activity在一个栈中存在,那么多次启动这个Activity都不会重新创建实例,并将当前Activity实例上面的其他Activity实例都移除栈。
  4. singleInstance:单实例模式,这是一种加强的singleTask模式,除了具有singleTask模式的所有特性外,这种模式的Activity只能单独地位于一个任务栈中。

相关问题

  1. Activity的onNewIntent()方法何时会被调用?

当启动模式为singleTop的时候,android系统会先检查栈顶的实例是不是该Activity的实例,如果不是的话,它会创建一个该Activity的实例,并调用onCreate函数。如果栈顶已经存在该实例,则不会再创建该Activity的实例,而且不会执行onCreate函数,而是执行onNewIntent函数来重新启动已经存在的实例。

同理,当启动模式为singleTask的时候,若栈顶不是该Activity的实例的时候,系统会在栈中寻找是否存在这个实例,如存在的话就会把这个实例放在栈顶,并把它上边的实例清除掉。但如果栈顶已经是这个实例的话,就会执行onNewIntent函数。

  1. Activity中onStart和onResume的区别?onPause和onStop的区别?
    onStart和onStop是从Activity是否可见这个角度来回调的,而onResume和onPause是从Activity是否位于前台这个角度来回调的。

你可能感兴趣的:(Activity)