我有一个MapActivity子类,我希望保留堆栈,但是不能在同一个进程中保留多个MapActivity实例。因此,我提出了两个方案来实现这一目标:
MapActivity的状态以及它触发的任何意图,然后通过发送重新创建该活动的意图让切换到重构MapActivity的活动。此外,将设置MapActivity,以便意图一次只创建该活动的单个实例。这种方法存在缺陷,因为此活动有多条退出路径,因此需要对所有这些路径进行更改,以支持此操作。MapActivity替换为一个模拟活动,该活动在其onResume()方法或其他方面进行重新创建,然后您切换到的活动可能仍然很高兴地不知道这个问题。这种方法的问题在于,我不知道应该如何创建这个模拟活动,也不知道如何启动我想要切换到的活动.。
因此,我的问题是,这是否有更好的方法来做到这一点,如果没有,如果有可能的话,我将如何处理备选方案2?
编辑:实现选项2的一种可能方法是使模拟活动成为在onCreate()中为您启动目标活动的途径点。但是,我们只需要注意,如果由于活动正在重建而再次调用onCreate(),则不会再次启动目标活动。这可以通过检查savedInstanceState是否为null来完成。
发布于 2011-11-18 10:28:52
您应该在清单文件中使用SingleInstance属性,这将使先前启动的实例位于后端的顶部。
<activity android:launchMode="singleInstance"/>https://stackoverflow.com/questions/8180782
复制相似问题