Sar*_*rma 4 java android android-studio
假设单个 Android 应用程序中有两个启动模式为“singleInstance”的 Activity。假设下面的一个例子。
我正在从活动 A -> B( launchMode="singleInstance"
) 导航。现在从活动 B -> C。最后,我从活动 C -> D( launchMode="singleInstance"
) 导航。
现在我们知道活动 B 的实例将在不同的任务中创建,并且 A 和 C 将在不同的任务中。
现在,我的问题是,活动 D 的任务实例将放置在哪个任务实例中。是与活动 B 一起进行,还是为活动 D 创建一些其他任务。
谢谢。
如果您不想阅读说明,我会将您问题的答案加粗。
使用时launchMode="singleInstance"
,有两点需要注意:
因此,launchMode 的 ActivitysingleInstance
将始终在其自己的任务中被隔离。该任务中不会有其他活动。
因此,以您的活动 A、B、C 和 D 问题为例:
launchMode="singleInstance"
执行新任务launchMode="singleInstance"
执行新任务从这里发生的情况来看,您有一个存储活动 A 和活动 C 的任务。launchMode="standard"
活动 B 位于它自己的任务中。活动 D 处于其自己的任务中。
因此,如果您选择退出这些活动,您会注意到:
发生这种情况是因为活动 C 与活动 A 执行相同的任务。
另外,Activity D 肯定不会与 Activity B 处于同一任务中,因为 Activity B 的任务仅适用于 Activity B,因为launchMode="singleInstance"
。
请记住,后台可以同时执行任意数量的任务。只是,如果持有的活动太多或者系统需要内存,它将开始破坏多个任务中的这些后台活动。
归档时间: |
|
查看次数: |
979 次 |
最近记录: |