1

我想在我的一个应用程序中实现队列。我一直在研究一些选项,例如基于文件的队列和数据库队列。当数据变得非常大时,基于文件的选择看起来不是正确的选择。我现在更倾向于基于 SQLite 的队列,因为它可以支持大型数据集。想知道是否有人已经在 android 中实现了队列以及采取的方法。在android的多线程环境中实现队列的最佳方法是什么?

[编辑] 我想为消息创建一个队列,如果设备长时间离线并且无法将队列刷新到服务器,它会变得非常大。我觉得 SQLite 可能是更好的解决方案,但担心如果在应用程序启动时所有数据库都作为第一件事加载到内存中。我想支持非常大的积压队列,但不想消耗太多内存来一次加载它们。

4

1 回答 1

3

想知道是否有人已经在 android 中实现了队列以及采取的方法

Square 发布了Tape,这是一种用于 Android 的持久队列实现,他们在应用程序中使用它。

当数据变得非常大时,基于文件的选择看起来不是正确的选择。

恕我直言,持久队列永远不应该“变得非常大”。如果与队列条目关联的数据很大,则表明其中一些数据不应被视为队列数据模型的一部分,而应视为应用程序整体数据模型的一部分,驻留在其他地方(例如 SQLite)从队列。

例如,假设队列用于图像上传。恕我直言,这些图像不是队列的一部分。队列表示上传图像的命令。队列条目应该指向图像的存储位置,因为这些图像可能服务于其他角色(例如,缓存条目),而不仅仅是等待上传。

于 2013-06-17T21:31:51.250 回答