0

在我使用的 Android 应用程序中,模型存储在全局范围内,并且活动会收到有关创建、更新和删除模型等更改的通知。收到服务器响应后调用相应的回调。

有一个列出模型的主要活动和另一个创建新模型的活动。从那里,用户可以填写几个字段并单击保存。这会触发创建新模型的服务器请求。得到响应后,来自服务器的验证模型被添加到全局集合中,并执行通知回调。问题是在等待响应时要做什么。

  1. 我们可以阻止用户界面并显示一个微调器。但这不是很敏感,并导致糟糕的用户体验。
  2. 我们可以添加一个本地初步模型并将其添加到全局集合中并触发通知回调。这将允许主要活动将其添加到列表中。响应后,我们根据请求的成功或失败更新或删除初步模型。但是,初步模型还没有它的 id,因此很难在集合中找到更新或删除。
  3. 基于这种方法,我们可以为初步模型分配一个随机的初步 id。但是,如果用户已经与新模型交互,这可能会创建使用错误初步 id 的定义不明确的请求。

我们如何在多个活动中处理初步模型,同时以清晰和响应的方式等待服务器响应?

4

1 回答 1

1

2中的最佳答案是让客户端创建ID。不要使用序列中的连续 ID。使用 128 位的随机 UUID。然后客户端可以随机创建一个新的 id 并且几乎有 0 失败的机会。

如果实际上 0 还不够好,请让客户端创建一个临时 ID。然后让服务器接受该 ID,或者发送带有临时 ID 和永久 ID 的响应,以便客户端可以将临时 ID 重新映射到新值。在客户端和服务器上创建之间发出的请求可以由客户端重新发送或由服务器重新映射。

虽然真的 - 一个 128 位的随机 id 几乎没有机会被骗,你不需要担心它。地球上的每个人都可以创建十亿个模型,并且下次尝试时碰撞的可能性不到十亿分之一。

于 2016-02-06T00:41:19.767 回答