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()
}

你可能感兴趣的:(Koin 如何实现fragment与activity之前通信)