繼 上一篇 Part 1 講解 Paging 單純使用 Remote 當作資料來源後,我們這篇要來講解另一種常見的資料架構:Remote + Local,我們會先從 Remote 拉資料到 Local 端,然後 App 統一使用 Local 當作資料來源,讓我們來看看是如何實作這樣的資料架構。
Remote + Local 資料架構
首先我們展示如何拉 Remote 資料到 Local 後,再讓 View 統一用 Local 資料顯示,這邊先不含 Paging 整合,只看一般資料如何從 Remote → Local → View 這樣的流程顯示出來,熟悉這流程後,再來看 Paging Library 是如何支援這樣的資料架構。 Remote 就是我們一般常用的 API,而 Local 我們選用 Room 當作資料庫,採用 MVVM + RxJava 這樣的 Reactive 架構,…(未完)
完整文章已轉移至 Medium,這邊不再更新會陸續轉移過去,未來在 Medium 繼續寫新文章,文章歡迎「拍手」按讚以及 Follow。
https://medium.com/enginebai/android-paging-part2-bb3c4ce27e44

您好,請問要怎麼做下拉更新?我呼叫了 DataSource.invalidate() 資料也不會變更。
嗨,Kevin,你的 DataSource 是 Remote only 還是 Remote + Local?? 如果是前者,應該呼叫 `DataSource.invalidate()` 就可以才對,如果是後者,則是要清除 Local DB 的資料後才會觸發 BoundaryCallback 去重新拉資料。
您好, 請問一下 如果call api failed的話, onBoundarycallback 就不會再次呼叫了,就算一直scrolling up/down, 請問該怎麼辦呢(network+db)
你自己有實作 retry 嗎?如果沒有的話,可以加入自動重試或者 UI 顯示重試按鈕,讓使用者可以自己重試。
You saved my day!!