Android Room Databaseの@Daoで返すLiveData<?>は、Observeしないとそもそもクエリを発行しない。
確認環境
- implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
- implementation 'androidx.room:room-runtime:2.2.5'
ある画面でRoomからLiveData形式で取得し、一度もObserveせず後の方の画面でgetValueしてもnullのままだった。
より正確には「LiveDataがActive」の時のみデータを取得している
class RoomTrackingLiveDataextends LiveData { //中略 @Override protected void onActive() { super.onActive(); mContainer.onActive(this); getQueryExecutor().execute(mRefreshRunnable); //☆ここ } //後略 }
Android Roomライブラリのライセンス解釈
ソースコードから抽出されたドキュメントやコードはAndroid Open Source Projectの優先ライセンスであるApache 2.0 licenseが適用され、それ以外のコンテンツはCC BY 2.5が適用されている。
よって、ページ内のコード転載についてはApache 2.0 licenseにおける頒布行為にあたると解釈している。