Дорого ли инициализировать несколько запросов в конструкторе View Model? - PullRequest
0 голосов
/ 19 марта 2019

Мой случай: я хочу получить данные из базы данных комнаты с несколькими разными запросами.

Мои мысли:

вариант 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 и может ли этот подход быть слишком дорогим?

...