Application <=> Activity

Room DAO
Documentation - Google Codelabs

Room DAO

逻辑顺序:

  1. ViewModel mv = ViewModelProviders.of(this).get(ModuleViewModel.class);

  2. mv封装了Repository当中crud的方法
    在需要的逻辑位置调用(e.g save_BTN.onClickListener)

  3. 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();
  4. DataBase类是implement DAO。其中又populate data(填充数据)
    非常像JS,数据库实例.build()方法之前有链式回调

     public abstract ModuleDAO moduleDao();
     private static volatile ModuleRoomDatabase INSTANCE; //并发