Android 的四种Activity启动模式
- standard:默认模式,允许多实例
- singleTop:相比于standard,有新的启动请求时,只有在目标Activity处于当前栈顶时,才会调用onNewIntent()而不创建新实例,其他情况都和standard一致
- singleTask:设置了singleTask启动模式的Activity,它在启动的时候,会先在系统中查找属性值affinity等于它的属性值taskAffinity的任务存在;如果存在这样的任务,它就会在这个任务中启动,否则就会在新任务中启动。因此,如果我们想要设置了singleTask启动模式的Activity在新的任务中启动,就要为它设置一个独立的taskAffinity属性值。如果设置了singleTask启动模式的Activity不是在新的任务中启动时,它会在已有的任务中查看是否已经存在相应的Activity实例,如果存在,就会把位于这个Activity实例上面的Activity全部结束掉,即最终这个Activity实例会位于任务的堆栈顶端中。
- singleInstance:和singleTask相比,不同点在于singleInstance activity所在的task只会有这一个activity
Activity的任务栈(Task)简述
- Application启动时,系统会为Application创建一个任务栈(Task)
- 我们对Activity的打开和关闭操作,就是将Activity压入(push)任务栈和从任务栈中弹出(po
本文详细解析了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance。重点讨论了singleTask和singleTop模式的特性,强调它们在确保Activity在任务栈中唯一性的作用,并给出了在特定场景下如何合理使用这两种模式的建议。
订阅专栏 解锁全文
3220

被折叠的 条评论
为什么被折叠?



