我正在尝试https://developer.android.com/training/basics/activity-lifecycle/index.html提供的演示。
我可以看到,当我开始B或C时,将创建新的活动B或C,如果我完成B或C,它将只向后退一步,就像:创建A-> B-> C-> B-> C,然后是完成C然后B然后是C然后BI将到达A.
虽然如果我尝试在此过程中启动A,它将转到原来的第一个A,就像: 创建A-> B-> C,然后我创建A,它只是A(而不是A-> B-> C-> A)。
活动A,B和C的代码对我来说是一样的,是因为A是主要的活动吗?我想念一下吗?
答案 0 :(得分:3)
这是因为活动A的launchMode
是“singleTask”。这将在ActivityMan的<activity>
标记下的AndroidManifest.xml文件中声明。通过此文件,您可以修改活动,服务等行为的许多方面。From the documentation:
相比之下,“singleTask”和“singleInstance”活动只能 开始一项任务。它们始终位于活动堆栈的根部。 此外,该设备只能在a处保存一个活动实例 时间 - 只有一个这样的任务。