1、启动模式通俗的说就是Activity启动时的策略,在AndroidManifest.xml文件中的android:launchMode属性设置。
启动模式有四种:standard、singleTop、singTask、singInstance。
介绍四种模式之前,先介绍下任务栈的概念
任务栈:每个应用都有一个任务栈,用来存放Activity的,Activity在栈中的顺序和其启动的先后顺序是一致的。
2、四种启动模式
standard启动模式:是Activity默认的启动模式,设置此属性的Activity启动时不管栈中是否存在该Activity的实例,都会重新创建该Activity新的实例。这种启动模式在实际开发中往往不能满足我们的需求,而且对系统资源的耗费比较大。
singleTop启动模式:设置该属性的Activity在启动时先查看任务栈的栈顶是否存在该Activity的实例,如果存在就不再创建新的Activity实例(必须在栈顶),这种启动模式解决了栈顶复用的为题,避免在栈顶存在多个同一个Activity的实例。
singleTask启动模式:设置该属性的Activity启动时会在整个任务栈中查找是否存在该Activity的实例,如果存在就将该Activity上面的Activity消灭掉,使该Activity升至栈顶。这种启动方式实现了同一个应用中同一个Activity实例的共享。
注:singleTask可以用来退出整个应用。将主Activity设为SingTask模式,然后在要退出的Activity中转到主Activity,然后重写主Activity的onNewIntent函数,并在函数中加上一句finish。
singleInstance启动模式:设置该属性的Activity在启动时,系统会将该Activity的实例放入一个新的任务栈中,并且允许其他应用加入该任务栈。这种启动方式实现了多个应用共享同一个Activity实例。