[Android] Realm Tips

紀錄一下最近使用 Realm 開發的心得。如果不知道 Realm 是什麼的話,請參考這篇文章

deleteRealmIfMigrationNeeded

Realm 若更動了 Table Schema,就要作 Migration 的動作,否則應用程式會因為錯誤而強制退出。可是如果應用程式使用 Realm 當作例如快取等不重要資料的儲存媒介,每次更動 Schema 都要 Migration,反而是多此一舉。此時可以在設定 Realm 時開啟 deleteRealmIfMigrationNeeded。當有需要 Migration 時,會自動重建 Realm Object。

交易 Transaction Block

當 Realm 執行新增和刪除動作時,必須要用 realm.beginTransaction 和 realm.closeTransaction 確保交易正確執行。現在多了 Transaction Block 的方法,可以將要執行的動作寫在方法裡。Transaction Block 還分為同步(executeTransaction)和異步交易(executeTransactionAync),異步交易會回呼成功和失敗。

Realm + RxJava

Realm 從 0.87 版開始支援 RxJava,可以運用 Realm ORM 的特性,結合 RxJava 的數據流特性,讓程式碼更精簡。下面的範例是將資料從資料庫取出後,轉換型態為 List。然後將 Ream 的 Person 物件當作被觀察者,當被觀察者異動(本例是查詢資料),便觸發後續的動作(本例是將查詢出的資料顯示在 ListView,然後逐筆查詢個別 Person 的 GitHub 資料,並將結果更新 ListView。

相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

隱私權政策產生器 Privacy Policy Generator

使用 Vysor 在電腦上控制 Android 裝置