Android的启动模式有四种: 分别是standard、 singleTop、 singleTask 和singleInstance。
1. standard
Activity默认的启动模式。在这种模式下启动的Activity可以多次实例化。 每次调用startActivity时,会启动一个新的Activity的实例,并置于任务栈的顶部。
2. singleTop
分两种情况处理:如果栈顶已经存在此Activity的实例,会重用此Activity实例,并且调用此实例的onNewIntent()函数
第二种情况,如果栈顶不存在此Activity实例,处理方式同stardard。
3. singleTask
采用此种方式启动Activity,那么在一个任务栈中只能有一个该Activity实例。
第一种情况,如果栈中存在此实例,处理方式同stardard; 如果栈中已经存在此实例,系统会销毁处在该Activity上的所有Activity实例,并且调用该Activity实例的onNewIntent()函数。
第二种情况, 如果栈中没有此实例,处理方式同stardard.
4. singleInstance
系统中只能有一个实例,并且单独处于一个任务栈中。
第一种情况,如果栈中已经存在此实例,回调此实例的onNewIntent()方法。
第二种情况,如果栈中不存在此实例,创建一个新任务栈,并且创建此实例,并置于栈中。