【笔记】【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  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示