gpt4 book ai didi

android - android中所有设备上sqlite中行的唯一ID

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:17 25 4
gpt4 key购买 nike

我的应用程序将离线数据存储在 sqlite 中,然后根据用户选择将其同步到在线服务器。我需要为 sqlite 中的每一行提供一个唯一的 ID,以便在同步/更新时我可以管理每一行的状态和其他内容。

唯一 ID 在使用我的应用程序的所有设备上应该是唯一的。我尝试了 System.currentTimeMillis() 选项,但它似乎可以跨设备重复。我搜索的其他选项是 UUID 或合并 2 个值,例如 System.currentTimeMillis()Random.nextLong() 以创建唯一值

执行此操作的最佳可靠方法是什么?

最佳答案

您的 UUID 是正确的。 UUID 表示 Universally Unique IDentifier ,它专为您拥有的分布式计算环境而设计,多个设备生成唯一记录。因此,它“几乎是独一无二的”。这正是它所说的 - 实际上,它将在您的所有设备和时间上都是独一无二的。大多数实现采用某种形式的设备 ID(例如实际唯一的 MAC 地址),以及时间元素和加密的位置信息(geo-IP 或类似信息)。

在 Java/Android 中,您可以使用 UUID.randomUUID().toString()为您的 SQLite 数据库生成唯一的主键。一旦您同步回服务器,这些主键实际上将是唯一的。

我建议不要尝试实现您自己的 UUID 方案(基于 AndroidID、MAC 地址、IMEI、系统时间等)。虽然您可能会获得轻微的存储优势,但恕我直言,开发和故障排除的努力是不值得的。

关于android - android中所有设备上sqlite中行的唯一ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23602393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com