2015-05-14 65 views
0

我有這樣的情況: 我已經改變了一些沒有互聯網的應用程序的信息,我需要在互聯網出現時更新服務器上的信息。提出待處理請求的最佳做法是什麼?如何存儲請求隊列? P.S.我使用Retrofit。Android未決請求

回答

2

這取決於你的架構。但我更喜歡使用一些在服務下運行的Executor(ThreadPoolExecutor)。每個任務都有階段。如果它在某個階段墜毀。它將被推回到隊列中。下一次它從失敗階段繼續。同時每個任務應該只使用數據執行從Bundle。因此每個任務都應該使用Bundle啓動(如Fragment setBundle)。因此,您的執行程序將可以將任務存儲在數據庫中,或者僅在運行時,取決於您的aproach /項目。

編輯: 保存到DB 這取決於。你想只是爲了更新所有失敗的任務,或者與他們做些什麼?例如只更新1小時前失敗的那些,也許每個請求中都有相同的日期字段,等等。這取決於你。但是,由於您的任務將所有數據存儲在Parcel中,因此您有一般方法。把它放到ObjectOutputStream中。那麼你可以閱讀它。您也可以拆卸您的Bundle manualy並將其存儲到不同的列。

+0

你能舉例說明如何在數據庫中存儲這樣的任務嗎? – makaron