【笔记】【Android】Activity的Task模式

【笔记】【Android】Activity的Task模式

笔记系列,内容是从网络搜索的结果,不一定是正确的理解。
如果存在谬误,欢迎大家指正。

Task

一个应用可能会包含多个Activity,管理这些Activity顺序的容器,就是Task。

  • 当Activity1拉起Activity2时,Task会将Activity2压栈,将显示Activity2的内容。
  • 当用户点击Back按钮时,Task会将Activity2出栈,继续显示Activity1的内容。

为什么要创建多个Task

Launcher以及App是相对独立的存在。

  • 当显示Launcher时,其他App可以在后台等待唤醒。
  • 当某个App在显示中时,Launcher可以和其他App在后台等待唤醒。

如果将所有的画面(Activity)混在一起,当多个App进行前后台切换时,画面堆栈的管理将不可实施。

四种模式(Standard,SingleTop,SingleTask,SingleInstance)

标准模式(Standard)

可以重复创建多个实例。

栈顶复用模式(SingleTop)

如果要启动的Activity已经在栈顶,则直接复用,不会创建。

栈内复用模式(SingleTask)

如果Activity已经启动,执行clearTop,将其之上的Activity都出栈。一般用于MainActivity。

栈内唯一模式(SingleInstance)

Activity标志位

FLAG_ACTIVITY_CLEAR_TOP

这个标志位可以用于需要返回Task栈中某个Activity的场景。针对Activity的一次性设置。

FLAG_ACTIVITY_NEW_TASK

启动一个Activity,并且将其放到一个全新的Task中。
适用于以下情况。

  • 外部的其他App启动另一个App的情况。
  • 一个没有界面的Service或者BroadcastReceiver等拉起Activity的情况。
  • 启动一个需要独立Task栈的情况。
posted @   GiraKoo  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示