Application <=> Activity
Room DAO
Documentation - Google Codelabs
逻辑顺序:
ViewModel mv = ViewModelProviders.of(this).get(ModuleViewModel.class);
mv封装了Repository当中crud的方法
在需要的逻辑位置调用(e.g save_BTN.onClickListener)Repository内部,crud是多线程,异步后台操作的:
private ModuleDAO mModuleDao; private LiveData<List<ModuleEntity>> mAllModules; //LiveData<>,Observable<> // Constructor ModuleRoomDatabase db = ModuleRoomDatabase.getDatabase(application); //实例化一个DataBase类; mModuleDao = db.moduleDao(); mAllModules = mModuleDao.getAlphabetizedWords();
DataBase类是implement DAO。其中又populate data(填充数据)
非常像JS,数据库实例.build()方法之前有链式回调public abstract ModuleDAO moduleDao(); private static volatile ModuleRoomDatabase INSTANCE; //并发