问题标签 [koin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Koin 如何在 Android 活动 / appcompatactivity 之外注入
Koin是一个新的轻量级 DI 库,可用于 Android 以及独立的 kotlin 应用程序。
通常你注入这样的依赖:
用inject()
方法。
但是在 Activity 上下文不可用的地方(即在 Activity 之外)注入东西呢?
kotlin - 如何在顶级函数中使用 koin 注入依赖项
我有顶级功能
该功能创建通知,有时通知可以包含图像,所以我必须下载它。我正在使用包裹在接口 ImageManager 上的 Glide,所以我必须注入它。我将 Koin 用于 DI,问题是我不能写
在我的代码中的某处,因为没有实现 KoinComponent 接口的东西。
最明显的解决方案是将已经注入的其他地方imageManager
作为函数参数传递,但我不想这样做,因为在大多数情况下我不需要imageManager
:它取决于Data
参数的类型。
android - 如何在 android 活动测试中模拟 koin 注入的 bean 并捕获作为该模拟参数给出的 lambda?
我花了很多时间寻找一种在 android 活动中模拟 Koin bean 的聪明方法。不幸的是,没有一个令人满意......直到 koin-1.0.0-alpha22 发布
谢谢@arnaudgiuliani。
完整的示例可以在这里找到AndroidTestKoin 示例项目
希望这有助于帕特里斯
android - Koin Android:org.koin.error.NoBeanDefFoundException
收到该消息错误
但所有依赖项都是正确的。
我还注意到没有androidApplication()
参数的模块可以正常工作。
代码如下:
ImageManager 完美运行
但首选项崩溃
android - Koin vs Kodein - 依赖注入你更喜欢什么?科特林
你更喜欢 Kotlin 的 Android 依赖注入是什么?我已经开始使用 Kodein,但如果 Koin 更好,我不想浪费我的时间。
我已经阅读了 Makery Kotlin Development 的这个演示文稿https://www.kotlindevelopment.com/koin-vs-kodein/,它真的很棒。
从那个演示来看,这些是差异:
科登
- 强大的
- 大量功能
- 很棒的文档
- 更复杂的 API
科因
- 较小
- 较少的功能
- 天然原料药
Github 明星 Kodein 1164 vs 1350 Koin
谢谢 !!
android - Android 如何用 Koin 实现 JobScheduler
我开始使用Koin作为服务定位器/DI,因为它易于实现。我面临一个问题:Evernote Jobscheduler
截至目前,我有以下代码:
在我的 SplashViewModel 上,我将我所有的工作都称为:
我有一个这样的工作创造者:
在我的 App 类上,我像这样创建 JobManager:
它运行良好,我所有的工作都是周期性的,每 15 分钟安排一次,一切都运行良好。(此结构遵循 Jobscheduler github 页面上的说明)
但是当开始使用 DI 和 Koin 时,进行了以下更改:
我的模块包含我需要的所有依赖项:
我的 Repository 单例实例现在由我的 Worker 的依赖项传递,而 Worker 作为我的更新作业的依赖项传递:
所以为了让它工作,我不得不改变我的 JobCreator 类:
并为此创建一个新模块:
奇怪的部分出现在 AppCoordinator 上,我创建了一个属性并注入它:
所以这:
变成了这样:
我像这样开始koin:
这确实是第一次。但是,当作业被重新安排并尝试再次执行时,我的应用程序崩溃并出现以下异常:
标签 FORCE_UPDATE_TAG 的作业已经运行,创建者应始终创建一个新的作业实例
关于我缺少什么的任何想法?
提前致谢
android - Koin 范围和接口
我在我的项目中使用Koin di 库。lib 的版本是1.0.0-RC-1。
我的模块:
我在我的Application类中开始 koin 并创建了范围:
接下来我尝试将Toaster的实现从当前范围注入 Activity 中的变量。这里的代码:
在此之后我得到一个错误:
我不明白为什么这不起作用(如果使用具有不同名称的单个- 它会起作用)。那是koin错误吗?如何避免这个错误?