在android中终止向导的最佳方法

在android中终止向导的最佳方法,android,ipc,wizard,android-intent,Android,Ipc,Wizard,Android Intent,我在android中有一个预订向导,当我说向导时,我的意思是我有多个活动(意思是屏幕),它们在预订完成之前从一个传递到另一个。在我的信息可能无效的每一步中,因此我必须追溯2-3个活动并重新开始,我追溯的所有活动都应该被销毁,他们可能需要使他们用数据填充的单一数据容器无效。 我想到了两种方法: 使用startActivityForResult()启动与向导相关的所有活动,以便我在活动完成时收到通知,并使用错误代码(完成确定或出现错误)执行相应操作(例如:如果在中间,一个活动失败,它将返回失败,而前

我在android中有一个预订向导,当我说向导时,我的意思是我有多个活动(意思是屏幕),它们在预订完成之前从一个传递到另一个。在我的信息可能无效的每一步中,因此我必须追溯2-3个活动并重新开始,我追溯的所有活动都应该被销毁,他们可能需要使他们用数据填充的单一数据容器无效。 我想到了两种方法:

  • 使用
    startActivityForResult()
    启动与向导相关的所有活动,以便我在活动完成时收到通知,并使用错误代码(完成确定或出现错误)执行相应操作(例如:如果在中间,一个活动失败,它将返回失败,而前一个也将返回失败,直到我到达向导的第一个活动,我要么用对话框声明错误,要么显示“谢谢”屏幕)<
  • 我可以发送带有特定参数的react on intent,因此我有一条“关闭并清除”意图消息,用于关闭之前的活动等

  • 哪种方法更好,还有其他有趣/有效的方法吗?

    我得到了一个提示,让我朝着不同的方向思考:

  • 使用一个不可见的活动,或者一个本地服务,即“大脑”,它在每一个转弯时都知道要采取什么行动。要删除一堆不需要的活动,我应该在我想使用的最下面的活动上使用标志“活动”\u CLEAR\u TOP
  • 另一种选择是将所有 我想玩的活动 他们在里面的书堆上的对位 一个ActivityGroup对象,用于保存 所有活动都处于活动状态(如选项卡中) 在堆栈上,但您可以控制 显示哪一个,显示哪一个 不是。活动组将包含 状态机逻辑 哪种行为不应该是 显示的和应该显示的 处置

  • 我得到了一个提示,让我朝着另一个方向思考:

  • 使用一个不可见的活动,或者一个本地服务,即“大脑”,它在每一个转弯时都知道要采取什么行动。要删除一堆不需要的活动,我应该在我想使用的最下面的活动上使用标志“活动”\u CLEAR\u TOP
  • 另一种选择是将所有 我想玩的活动 他们在里面的书堆上的对位 一个ActivityGroup对象,用于保存 所有活动都处于活动状态(如选项卡中) 在堆栈上,但您可以控制 显示哪一个,显示哪一个 不是。活动组将包含 状态机逻辑 哪种行为不应该是 显示的和应该显示的 处置

  • 在进入下一个活动之前,您是否应该验证每个活动上的内容?如果您只知道上一个屏幕在离开后是否无效,请在实现该屏幕的活动上将其设置为错误。他们可以在该活动上修复该屏幕,也可以单击您提供的后退按钮。“我在Android中有一个预订向导,当我说向导时,我的意思是我有多个活动(意思是屏幕),从一个传递到另一个直到预订完成。”——考虑在这里使用一个活动,使用<代码> ViewFlipper <代码>或在向导步骤S.CythIII之间移动的东西:我应该和我这样做:但这是每个人都可以使用的web服务,除非你检查每一步,你不能100%确定你仍然拥有你想要的(特别是在度假时)。在进入下一个活动之前,你不应该验证每个活动上的内容吗?如果你只知道上一个屏幕离开后是否无效,那么在实现该屏幕的活动上将其设置为错误。他们可以在该活动上修复它,或者单击你提供的后退按钮。“我在android中有一个预订向导,当我说向导时,我的意思是我有多个活动(意思是屏幕),它们在预订完成之前从一个传递到另一个。“考虑在这里使用一个单独的活动,使用<代码> ViewFlipper <代码>或在向导STEP.CythIII:我应该和我之间做的事情之间移动:-但是,这是Web服务的事情,每个人都可以使用,除非你检查每一步的方式,你不能100%确定你仍然有你正在寻找的东西。(特别是在度假时)。