我有一个MapActivity
子类,我想保留堆栈,但我不能MapActivity
在同一个进程中保留 a 的多个实例。所以我想出了两个方案来实现这一点:
- 传递状态及其
MapActivity
触发的任何意图,然后MapActivity
通过发送重新创建活动的意图让被切换的活动重建。此外,MapActivity
将设置为使意图一次只创建此活动的一个实例。这种方法存在缺陷,因为该活动有多个退出路径,因此需要更改所有退出路径以支持这一点。 - 将 替换
MapActivity
为模拟活动,该活动在其onResume()
方法或其他内容中重新创建活动,然后您切换到的活动可以保持幸福地不知道此问题。这种方法的问题是我不知道我应该如何去创建这个模拟活动,并且还激发了一个意图来启动我想要切换到的活动。
所以我的问题是有没有更好的方法来做到这一点,如果没有,如果可能的话,我将如何去做选项 2?
编辑:执行选项 2 的一种可能方法是使模拟活动成为在它的onCreate()
. 但是,一个人只需要小心,如果onCreate()
因为正在重建活动而再次调用该活动,则该活动不会再次启动目标活动。这可以通过检查savedInstanceState
is来完成null
。