我了解架构组件中的ViewModel用于存储和管理数据,因此在配置更改期间它不会丢失。

例如,我的 Activity 与LiveData或使用存储数据无关。我应该仍然通过ViewModel吗?或直接实例化Repo类并调用插入方法?我希望这有道理

我使用ViewModel的示例

public class MainViewModel extends AndroidViewModel {
    private DataRepo dataRepo;
    private LiveData<List<Group>> groupList;
    private LiveData<List<Bill>> billList;

    public MainViewModel(Application application) {
        super(application);
        dataRepo = new DataRepo(this.getApplication));
        groupList = dataRepo.getGroup();
        billList = dataRepo.getBill();
    }

    public LiveData<List<Group>> getGroupList() {
        return groupList:
    }

    public LiveData<List<Bill>> getBillList() {
        return billList:
    }

    public void insertGroupAndMember(Group group) {
        dataRepo.insertGroupAndMember(group);
    }

    public void insertBills(List<Bill> bills) {
        dataRepo.insertBills(bills);
    }

    public List<Member> getMemberList(Group group) {
        return dataRepo.getMembers(group);
    }
}

最佳答案

我认为您想使用ViewModel来保持UI Controller 尽可能的干净。您的 View 模型应调用存储库以执行简单的CRUD操作。
请参阅以下文档中的snippet:

08-18 10:10