Android - 如何将 activity 个实例限制为每个列表项一个?

Android - How to limit activity instances to one per list item?

我有 FooListActivity(一个实例,显示所有 foo 的列表)和 FooActivity(每个 foo 零个或一个实例)。

FooActivities 可以从 FooListActivity 启动,也可以从长 运行 服务启动,无需用户干预。

如何确保每个 foo 最多存在一个 FooActivity?

即如果我尝试为已经有 FooActivity 的 foo 启动 FooActivity,它应该将现有的 FooActivity 放在前面,而不是创建不需要的实例。

请为 FooActivity 设置一个标志:

android:launchMode="singleInstance"

如果我对你的理解是正确的,你不想要你的 activity 的单个实例(你可以用 android:launchMode="singleInstance" 控制),但你想要每个显示的内容一个实例?如果是这样,您将必须自己跟踪。

另外,我不确定这是个好主意。虽然我可以想象它在平板电脑上的一些使用模式(但随后是片段,而不是活动),然后在 phone 上,用户无论如何都需要返回列表以查看其他数据(并且 if 设置 FooActivity 来显示数据很繁重,那么你或许应该考虑一些缓存来代替?