0
我有一个MapActivity
子类,我想保留堆栈,但我不能在同一个进程中保留MapActivity
的多个实例。所以,我拿出2个方案来实现这一目标:MapActivity实例管理
- 传递
MapActivity
的状态,它激发任何意图一起,然后让该得到交换活动到重建MapActivity
通过发送重新创建活动的意图。另外,将设置MapActivity
,以便意图一次只创建此活动的单个实例。这种方法存在缺陷,因为此活动有多个退出路径,所以需要对其进行更改以支持此操作。 - 用一个模拟活动替换
MapActivity
,该模拟活动可以在onResume()
方法或其他方法中完成活动的重新创建,然后您切换到的活动可以保持幸福而不知道此问题。这种方法的问题是我不知道我应该如何去创建这个模拟活动,并且发起一个意图来启动我想要切换到的活动。
所以我的问题是,这是否有更好的方法来做到这一点,如果不是这样,如果可能的话,我将如何去做选择2?
编辑:做选项2的一种可能方法是使模拟活动成为一个航点,为您启动目标活动onCreate()
。但是必须注意,如果onCreate()
因为活动正在重建而被再次调用,那么它不会再次启动目标活动。这可以通过检查savedInstanceState
是null
来完成。
是的,我在做这个规划的顶部,但我想要做的是保持后退堆叠。所以如果A是地图而B是另一个活动并且用户导航A-> B-> A-> B-> A。我希望它向用户显示后退栈是ABABA。但是我想要实现这一点,而不需要实际拥有多个A实例。这是非常困难的部分。 – JPvdMerwe