android:launchMode=“singleInstancePerTask“

android:launchMode="singleInstancePerTask"Android 12(API Level 31) 引入的新启动模式,它是对现有的 singleInstance 模式的扩展。相比 singleInstance 模式,它为 Activity 提供了更多的灵活性,同时仍然保证了任务栈的独立性。

功能解释

  • singleInstancePerTask :与 singleInstance 类似,Activity 只能存在于一个独立的任务栈中,但不同的是,如果在同一个任务中再次启动这个 Activity,它将会创建新的任务栈,而不是复用之前的那个任务栈。

这意味着,每个任务(Task)中,最多只能有一个该 Activity 的实例。但是,同一个应用可以在不同的任务中启动该 Activity,并在每个任务中拥有其独立的实例。

主要特性

  1. 独立任务栈 :与 singleInstance 相似,这个 Activity 会启动到一个单独的任务栈中,不与其他 Activity 混合使用。
  2. 每个任务中仅有一个实例 :与 singleTask 相似,同一任务中最多只能有一个该 Activity 的实例。
  3. 多任务栈支持 :不同任务(Task)可以拥有各自独立的 singleInstancePerTask Activity 实例,每个任务都有其独立的任务栈。

使用场景

singleInstancePerTask 适合以下场景:

  • 需要确保某个 Activity 的独立性,类似于 singleInstance,但又需要允许多个任务在不同场合中启动该 Activity 各自的实例。
  • 例如,某个特殊的设置界面,用户可能从多个任务(如通知栏、系统设置或应用内)启动该界面。在每个任务中,它们应该有各自独立的行为和任务栈。

总结

singleInstancePerTask 提供了一种灵活的机制,允许多个任务分别拥有一个独立的 Activity 实例。与 singleInstance 相比,它允许在不同的任务中创建多个实例,而不是全系统只允许一个实例

相关推荐
雪铃儿28 分钟前
改一张图等三天审核:flutter_patcher 0.1.3 给资源热更也开了口子
android·flutter
流年如夢44 分钟前
类和对象(下)
android·java·开发语言·面试·排序算法
Kapaseker1 小时前
Google I/O 2026:Android 开发者需要知道的一切
android
憧憬成为web高手1 小时前
actf gomysql复现
android·adb
恋猫de小郭1 小时前
Flutter 多窗口最近进度,为什么 3.44 还不落地
android·前端·flutter
问心无愧05131 小时前
ctf show web 入门255
android·前端·笔记
黄林晴2 小时前
Compose 架构大升级,终于支持列表项独立 ViewModel 了!
android·android jetpack
147API2 小时前
OpenAI 兼容客户端通用教程:API 地址、密钥与模型名
android·数据库·redis·openai
nvd112 小时前
极客指南:利用 OpenClaw + Termux + Shizuku 实现安卓设备的降维远程接管
android
TO_ZRG2 小时前
Android HTTPS 防抓包原理与实现(Java)
android·java·https