我有一个MapActivity
子类,我想保留堆栈,但是我不能在同一个进程中保留MapActivity
的多个实例。所以我想出了两个方案来实现这个目标:
MapActivity
的状态以及它触发的任何意图,然后让切换的活动通过发送重新创建活动的意图来重建MapActivity
。此外,将设置MapActivity
,以便意图一次只创建此活动的单个实例。这种方法存在缺陷,因为此活动有多个退出路径,因此需要更改所有这些路径以支持此操作。MapActivity
替换为使用onResume()
方法或其他方式重新创建活动的模拟活动,然后您切换到的活动可以保持幸福地不知道此问题。这种方法的问题是我不知道如何创建这个模拟活动,并启动我想要切换到的活动的意图。所以我的问题是,有更好的方法可以做到这一点,如果没有,如果有可能,我将如何进行选项2?
编辑:执行选项2的一种可能方法是使模拟活动成为在onCreate()
中为您启动目标活动的航点。但是,必须要小心的是,如果因重建活动而再次调用onCreate()
,则该活动不会再次启动目标活动。这可以通过检查savedInstanceState
是否为null
来完成。
答案 0 :(得分:0)
您应该在清单文件中使用SingleInstance属性,这会将先前启动的实例带到backstack的顶部
<activity android:launchMode="singleInstance"/>