Activity的启动模式有几种?
参考答案:
Activity的启动模式有四种,分别是:
- Standard模式(标准模式):这是Android的默认启动模式。在这种模式下,每次启动Activity时,系统都会创建一个新的Activity实例,不管任务栈中是否已经有这个Activity的实例。因此,多次打开同一界面再回退,就需要回退多次。
- SingleTop模式(栈顶复用模式):当设置Activity的启动模式为SingleTop时,如果当前栈顶已经有一个相同的Activity实例,系统就不会创建新的实例,而是直接复用栈顶的那个实例。只有当需要创建新的Activity实例时,才会创建新的实例。这种模式下,复用的Activity会回调onNewIntent方法。
- SingleTask模式:在这种模式下,Activity在整个应用程序中只有一个实例。每次启动Activity时,系统首先会检查栈中是否存在当前Activity的实例。如果存在,就直接复用该实例,并把该实例之上的所有Activity实例全部出栈。如果不存在,就创建一个新的实例。
- SingleInstance模式:在这种模式下,会启动一个新的任务栈来管理当前程序中SingleInstance模式启动的Activity。在Android系统中,该Activity只有一个实例。与其他三种模式不同的是,SingleInstance模式的Activity会独占一个任务栈,具有最高的优先级。
这四种启动模式可以在AndroidManifest.xml文件中通过android:launchMode属性为每一个Activity指定。如果没有明确指定,那么默认的启动模式就是Standard模式。