我发现在我的应用程序中,用户可以在用户使用应用程序时打开的各种活动中相当“嵌套”。有没有什么办法可以让每个活动有一个且只有一个实例?
例如:
- 主菜单
- 对象列表
- 对象详细信息
- 对象编辑
- 对象详细信息
- 子对象详细
- 子对象编辑
- 子对象详细信息现在
,当用户按压背部,它要经过“子对象详细信息”两次(同一个对象,当编辑它返回到详细页),同样的事情发生为“父对象详细信息”。
是否有重用活动的方法(如果它们已经在堆栈中打开并重新排序)?我所见过的唯一方法是使用launcher
属性的活动。我相信我看到了singleTask
和singleTop
。
如果我应该使用这两个属性,singleTask
和singleTop
,我该如何使用它们?当我试图将它们包含在应用程序中时,它没有任何区别。我是否还需要在使用startActivity
启动意图时设置标志?
**如果不理解'launchMode =“singleInstance”'的所有含义,请不要使用它。这实际上并不_re-order_活动**,因为它强制活动完全处于单独的任务中(即,它将显示为与最近的应用程序列表中的应用程序分开)。因此,如果您针对应用中的每项活动执行此操作,则会在“最近使用的应用”列表中将它们看作单独的条目。至少这就是文档所说的。 [现实有点不同](https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en)。 –
我的建议是使用'Intent.FLAG_ACTIVITY_REORDER_TO_FRONT'来代替(如Vikram的回答中所述),尽管这不是一个完美的解决方案。 –