我有活动A,B,C,D和服务S. 活动的层次结构是A-> B-> C-> D
当服务收到信号时,服务会添加通知,当用户点击它时,我想创建一个新的活动E. 如果存在任务,请将活动创建为最底层活动的子项。 (即A-> B-> C-> E或A-> E或A-> B-> E或A-> B-> C-> D-> E) 在这种情况下,A,B,C,D必须是与以前相同的状态,E是新活动。 如果没有现有任务(没有正在运行的任务),请在另一个新活动A下创建活动。 (即A-> E) 在这种情况下,A,E都是新活动。
有什么建议吗?
谢谢!
答案 0 :(得分:0)
根据我的理解,如果你有
A -> B -> C -> D -> E
然后这意味着当你从E回来时你最终会进入D然后是C等。否则你对你所假设的陈述是错误。
基本上你 COULD 而不是做A-E只是直接进入E并通过将其打包到你的通知数据中来传递将导致相应对话的数据。
如果您可以转到E并且如果用户使用后退按钮返回,则无需使用A-E,您应该拦截它并处理流程以尊重您的设计。这样做应该始终从E-A开始。否则,您以糟糕的方式实现了应用程序的流程。
您还可以设置A-D如何设计不佳。您应更改此内容以反映我所描述的内容。
Main screen (A)
List Screen (B)
Message Screen (C)
Details Screen (D)
这是有道理的并且是更好的流程。要直接进入D,然后使用“返回”按钮从D向后移动。
任何设置屏幕不应该都在流程中,因为这会让用户感到困惑,因为他们没有遍历它,因此它会显示一个无环境屏幕。并且您的服务也不应该成为流程的一部分,它的状态应该由活动维护。