繁体   English   中英

Koin FragmentFactory 无法处理活动重新创建

[英]Koin FragmentFactory fails to handle activity re-creation

我正在使用最新的 Koin 版本3.1.2 我有一个基本的Fragment ,它接受一个 String 参数给它的构造函数。

我的 Koin 设置如下:

活动:

override val scope: Scope by activityScope()
private val fragment by inject<MyFragment> {
    parametersOf(intent.getStringExtra(PROJECT_ID_EXTRA))
}

override fun onCreate(savedInstanceState: Bundle?) {
    setupKoinFragmentFactory(scope)
    super.onCreate(savedInstanceState)
    .
    .
}

分段:

class MyFragment(private val projectId: String?) : BaseFragment() {

}

Koin模块:

scope<MyActivity> {
    fragment { (projectId: String) -> MyFragment(projectId) }
}

为了模拟活动重新创建,我在开发人员选项中打开了Don't keep activities标志。

重新创建活动时总是会发生什么,我收到以下异常:

Unable to start activity ComponentInfo{com.activity.MyActivity}: org.koin.core.error.InstanceCreationException: Could not create instance for [Factory:'com.fragment.MyFragment',scope:q:'com.activity.MyActivity']
Can't get injected parameter #0 from DefinitionParameters[] for type 'java.lang.String'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM