谈到Activity的启动方式必须要说的是数据结构中的栈。栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶。需要读取数据的时候就需要从顶部开始读取数据,栈具有记忆功能,对栈的操作不需要指针的约束。在Android中Activity的显示其实就是一个入栈和出栈的过程。当打开一个Activity的时候Activity入栈,当关闭一个Activity的时候Activity出栈,用户操作的Activity位于栈顶,一般情况下,一个应用程序对应一个任务栈,当任务栈清空时也就代表应用程序清空了。同时当一个任务栈创建的时候系统就会分配一个int类型的id,当任务栈结束,这个id也就回收。
默认启动方式:standard
系统默认的Activity启动模式,他的读取和栈一样,当调用某个Activity时入栈,撤销时出栈,显示Activity位于栈顶。
顶部唯一任务:singleTop
当某个Activity设置了这种启动模式时,当Activity入栈位于顶部时,若再向Activity入栈(进入一个相同Activity的实例),那么系统会服用栈顶Activity,不会再创建新的Activity入栈。
单一任务:singleTask
当某个Activity设置了这种启动模式,说明这个栈只能允许一个Activity,不允许多个相同Activity。
单一实例:singleInstance
当某个Activity设置了这种启动模式,这种启动模式很特殊,Activity只会进入和自己相同的Activity栈中,不会进入其他的栈,也就是有不止一个任务栈位于一个应用程序中。
对四种启动模式做个总结:
时间: 2024-10-03 13:13:09