在我的应用程序中,我有一个相对复杂的活动/地方。在活动开始时解析状态(从历史令牌到模型)会导致一些服务器交互。 在用户交互中,活动仅更新模型的必要部分,因此保护一些服务器交互 - 活动/模型具有内部状态。
有没有办法在没有(重新)启动活动的情况下反映浏览器历史记录中的状态? (History.newItem(token)
也会导致活动开始)
更新 克里斯的解决方案“差不多”有效,但另一个问题出现了:在我的ui中,我有一个重置按钮(指向空标记的地方的链接)。如果我点击ui周围令牌已更新,但现在重置按钮不起作用。 gwt认为它在同一个地方,所以它忽略了重置点击。 在此之前问题几乎相同:令牌和地点没有改变,因此重置按钮也不起作用。 GWT将此记录为“被要求返回同一地点”
那么有没有办法让gwt重新启动活动而不管地点等价?
答案 0 :(得分:3)
转到新位置,但让ActivityMapper
返回相同的活动实例。这样,活动就不会重新启动
当地点从其他平均值改变时(例如浏览器历史记录),您必须找到更新活动的方法。例如,请参阅GWT MVP updating Activity state on Place change。
答案 1 :(得分:2)
有一个半解决方案,虽然我不想推荐它,但我想在此处添加它 - 只是为了警告这个解决方案的缺点:
您可以通过调用History.newItem(token, false)
将标记添加到历史记录而不触发事件。
这是一个半解决方案,因为: