同步操作将从 CarGuo/GSYGithubAppKotlin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
创建了 AppExecutors
线程池和 DataRepository
数据仓库
数据仓库,持有 AppDatabase
和 MediatorLiveData
Products
1、 创建 DataBinding
mBinding 。
2、通过 ProductListViewModel.Factory
创建 ProductListViewModel
。
3、订阅 vm 内的 LiveData
、用于更新 DataBinding 的 ObservableField
和手动更新数据。
4、ProductAdapter
中通过 DiffUtil
实现更新,通过 DataBinding
同步数据
1、创建 DataBinding
mBinding 。
2、通过 ProductViewModel.Factory
创建 ProductViewModel
。
3、将 ProductViewModel
设置给 mBinding。
4、订阅 vm 内的 LiveData
、用于更新 DataBinding 的 ObservableField
和手动更新数据。
持有 Repository
和 LiveData
,用于请求和对外提供LiveData订阅。
1、初始化 AppInjector.init()
2、注入 DispatchingAndroidInjector
,实现 HasActivityInjector
接口
1、调用 DaggerAppComponent
实现 Application 的 inject
2、注册 registerActivityLifecycleCallbacks
,判断 Activity 和 Fragment是否有需要 AndroidInjection.inject(activity)
由 AppComponent
、 AppModule
、 MainActivityModule
、AndroidInjectionModule
配合注入。
1、AndroidInjectionModule
This module should be installed in the component that is used to inject the {android.app.Application} class.
你还可以用 AndroidSupportInjectionModule
可以额外支持V4包下的Fragment
2、MainActivityModule
@ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
理解上是替换了原本 MainActivity注入需要的Component,在 MainActivityModule 中通过 ContributesAndroidInjector
并增加需要的其他Module(对Activity内的Fragmentmodule提供注入),实现MainActivity的注入:AndroidInjection.inject(activity)
。
3、AppModule
提供 Service、Db、Dao的单例注入,依赖 ViewModelModule
,
ViewModelModule 是 VM相关的
4、AppComponent
通过 @Component.Builder 增加builder方法,提供Application 注入方法。
引用上述所有Module
https://blog.csdn.net/qq_30889373/article/details/81806129
目前需要NavHostFragment,配置后可以Fragment 、Activity之间跳转。不过Fragment - Activity 是跳出了 graph,在新的Activity内可以设置新的graph
https://blog.csdn.net/cekiasoo/article/details/80739805
https://blog.csdn.net/weixin_42215792/article/details/80326637
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。