如何在Android上实现持久队列

cer*_*ran 7 java queue mobile android

我的应用程序需要一个类似于队列的数据结构:将数据放入其中,从中接收数据,类似于FIFO.对于数据,我指的是现在的简单字符串,稍后可能是更复杂的对象.问题是队列及其内容应该是持久的,无论Android正在做什么.如果应用程序关闭并重新打开(甚至Android重新启动),则队列应该具有与应用程序关闭之前相同的状态和数据.

我认为队列必须在引擎盖下使用某种存储,最好是设备的内部存储.也许你可以做一些头脑风暴如何实现这一点.队列不一定要在我的应用程序中运行,如果可以在Android中使用,它也可能是某种丢失耦合的后台服务(但对我的应用程序是私有的).

fxp*_*fxp 8

May squareup是个不错的选择.

QueueFile是一种快速,快速,基于文件的FIFO.从实例添加和删除是O(1)操作并且是原子的.写是同步的; 在操作返回之前,数据将写入磁盘.底层文件的结构可以承受进程甚至系统崩溃,如果在变更过程中抛出I/O异常,则更改将中止.


Fro*_*zie 7

我建议在里面使用一张桌子Sqlite.我会创建自己的SqliteQueue实现Queue接口.Offer会在表格中添加条目. Poll将返回一个条目并将其从表中删除.对于更复杂的对象,您可以使用GSON将对象转换为JSON字符串或将JSON字符串转换为对象.