我正在开发Android库,其他应用程序将使用它。这个库不会有任何活动,但它会有片段,虚拟机,域等。到目前为止,我的应用程序我与Dagger2,我不知道它将如何在库中工作。有人有经验吗?或者也许有人可以推荐其他库使用的情况下(koin?)谢啦,谢啦
y1aodyip1#
Koin要简单得多,你也可以去掉注解和它们的处理,假设我们有一个类名Helper,需要从不同的位置访问。实施步骤:a)在build.gradle(app)中添加依赖项。
Koin
Helper
build.gradle(app)
implementation "io.insert-koin:koin-android:3.3.0"
B)创建一个类,使用KoinComponent对其进行扩展
KoinComponent
class DIComponent : KoinComponent { // Utils val helper by inject<Helper>() }
c)通过在App类中传递模块来初始化Koin
App
class MainApplication : Application(){ override fun onCreate() { super.onCreate() startKoin{ androidLogger() androidContext(this@MainApplication) modules(appModule) } } private val appModule = module { single { Helper() } } }
d)现在,要在项目(活动/片段)中使用这个类
class MainActivity : AppCompatActivity() { private val diComponent = DIComponent() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diComponent.helper.yourFunction() } }
1条答案
按热度按时间y1aodyip1#
Koin
要简单得多,你也可以去掉注解和它们的处理,假设我们有一个类名Helper
,需要从不同的位置访问。实施步骤:
a)在
build.gradle(app)
中添加依赖项。B)创建一个类,使用
KoinComponent
对其进行扩展c)通过在
App
类中传递模块来初始化Koin
d)现在,要在项目(活动/片段)中使用这个类