android中活动间导航的设计模式

android中活动间导航的设计模式,android,Android,你好 我想知道这个概念是如何在android中实现的 此应用程序中的导航如下所示: 活动1----至---->活动2----至---.>活动3----至---> 活动2 但在这样做时:: 我将数据从 Activity1->Activity2->我不从Activity2传递数据- ->活动3 现在 如果我导航回Activity2--from--Activity3 应用程序关闭,因为Activity2需要 不在活动3中 如何克服这一问题,如何保存 从活动3导航回之前的活动2 周期必须为::

你好

我想知道这个概念是如何在android中实现的

  • 此应用程序中的导航如下所示:
活动1----至---->活动2----至---.>活动3----至---> 活动2

但在这样做时::

我将数据从

Activity1->Activity2->我不从Activity2传递数据- ->活动3

现在

如果我导航回Activity2--from--Activity3

  • 应用程序关闭,因为Activity2需要 不在活动3中
  • 如何克服这一问题,如何保存 从活动3导航回之前的活动2
周期必须为::

活动1----至---->活动2----至---.>活动3----至---> 活动2


  • 如何做到这一点
  • 我需要寻找什么概念

我希望我的描述清楚

当从Activity3导航回Activity2时,我认为您再次启动Activity2,这是错误的方法。您不需要再次启动Activity2。只需在Activity3中按back按钮,堆栈中的Activity2将再次出现在前台,并且不会再次调用onCreate方法

  • 活动完全负责在
    onPause()
    中保存其状态,并在
    onCreate()
    中恢复其状态。片段也是如此

  • 如果活动2请求活动3使用
    startActivityForResult()
    ,则当活动3完成时,A将在其
    onActivityResult()
    中接收这些结果

  • 所有新启动的活动都将构建为任务堆栈。当一个新的活动完成时,它下面的旧活动将进入屏幕


  • 安卓确保这些方法的调用顺序正确。

    本着已发布答案的精神: 如果您不重新创建/销毁活动,android生命周期将保留这些活动。但别搞错了,android并不能保证数据会在你回来后就在那里(尽管通常是这样,但垃圾收集器可能会删除一些东西等等)

    如果我们丢失了一些东西,当如何从堆栈中移除一个ACTY时,你不知道如何实际保存数据,你可以考虑查看持久性机制(参见)。特别是对于您的输入数据(表格等),我引用了有关该问题的文档部分:

    调用活动的onPause()方法时,它应该提交给 备份内容提供商或文件用户所做的任何更改。这 确保任何其他正在进行的活动都能看到这些更改 就要跑了。您可能更希望提交数据 在活动生命周期的关键时刻积极应对:针对 在开始新活动之前,在完成自己的活动之前 活动,当用户在输入字段等之间切换时