Android待处理请求

时间:2015-05-14 13:24:54

标签: android rest retrofit

我有这样的情况: 我在没有互联网的应用程序中更改了一些信息,我需要在互联网出现时在服务器上更新信息。提出待处理请求的最佳做法是什么?如何存储请求队列? 附:我使用Retrofit。

1 个答案:

答案 0 :(得分:2)

这取决于您的架构。但我更喜欢使用一些在服务下运行的Executor(ThreadPoolExecutor)。每个任务都有阶段。如果它在某个阶段崩溃了它将被推回队列中。而下一次它从失败的阶段继续。同时,每个任务应使用仅从Bundle执行的数据。所以每个任务都应该用Bundle启动(比如Fragment setBundle)所以你的执行者可以在数据库中存储任务,或者只是在运行时,取决于你的aproach /项目。

修改 保存到DB 这取决于。你想只是更新所有失败的任务,或者用它们制作一些东西吗?例如,只更新1小时前失败的那些,也许你在每个请求中都有相同的日期字段等等。所以它取决于你。但由于您的任务将所有数据存储到Parcel中,因此您可以采用一般方法。只需将其放入ObjectOutputStream即可。然后你就可以看了。您也可以手动拆卸Bundle并将其存储到不同的列中。