Koin 如何实现fragment与activity之前通信

最近由于项目改造,由MVP模式改为了MVVM模式,另外项目中使用到了组件化的架构。碰到很多问题简单阐述下:

Koin 基础的注入

val loginModel = module {
    single {
        RetrofitManager.instance.create(HttpConstants.ROOT_API, LoginApi::class.java)
    }
    single {
        LoginRepository(get())
    }

    viewModel {
        LoginViewModel(androidApplication(), get())
    }

    viewModel {
        RegisterViewModel(androidApplication(),get())
    }
}

application里面的开始初始化

        startKoin{
//            androidLogger(Level.DEBUG)
            androidContext(this@LoginApplication)
            modules(loginModel)
        }

进阶的一些使用

在 Activity/Fragments 之间共享 ViewModel

class RegisterActivity : BaseActivity() {
  val viewModel: RegisterViewModel by viewModel()
}
class AFragment : BaseFragment() {
 val viewModel: RegisterViewModel by sharedViewModel()
}
class BFragment : BaseFragment() {
 val viewModel: RegisterViewModel by sharedViewModel()
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容