Мой случай: я хочу получить данные из базы данных комнаты с несколькими разными запросами.
Мои мысли:
вариант 1: (... но у меня это не работает)
public void setmQueryAlbumMediaList(String directory_path, String sectionOrder, String sortOrder){
this.mQueryMediaList = mediaDatabase.mediaDao().getFromPathByArgs(directory_path, sectionOrder, sortOrder);
}
public LiveData<List<MediaStoreData>> getmQueryMediaList(){
return mQueryMediaList;
}
Вариант 2:
public final LiveData<List<MediaStoreData>> mDbList1;
public final LiveData<List<MediaStoreData>> mDbList2;
public final LiveData<List<MediaStoreData>> mDbList3;
public MediaViewModel(@NonNull Application application) {
super(application);
this.mediaDatabase = MediaDatabase.getMediaDatabase(this.getApplication());
this.mDbList1 = mediaDatabase.mediaDao().getList1();
this.mDbList2 = mediaDatabase.mediaDao().getList2();
this.mDbList3 = mediaDatabase.mediaDao().getList3();
}
Вопрос: В моем случае вариант 2 проще реализовать, но я не уверен, как работает ViewModel и может ли этот подход быть слишком дорогим?