0
我想遵循這個很好的可用性模式,其中應用程序離線存儲數據以獲得更快的響應,並在線上獲取新數據時更新它。我使用Loaders
與LoaderManager
。LoaderManager獲取數據離線,然後在線
現在,用Loaders
實現上述方法的正確方法是什麼?
目前我使用兩種方法,它們都有其缺點,並且通常不是很優雅。
- 在代替的SQLite
- 兩個獨立
AsyncTaskLoaders
應用上下文存儲數據 -offlineLoader
和onlineLoader
。首先獲取從SQLite數據庫中的數據,並立即顯示了它,如果它的存在,第二個從外部服務器加載數據,將其寫入數據庫(用於offlineLoader),並取代了離線數據
我會真正想要的是:
單個Loader將數據脫機並將其返回給LoaderManager,但之後繼續工作並在準備就緒時返回新的在線數據。所以它應該返回兩次 - 甚至可能嗎?
現在我想到了,應該重寫'onDeliverResult()'開始下載在線數據...有人告訴我,如果我錯了,但我會嘗試這種方法 –