应用程序引用的koin模块中声明的类是否可以在应用程序生存期间保留在内存中?

问题描述 投票:0回答:1

Koin提供singlefactory创建声明的类的实例。

我的同事认为,Koin创建了这些类的静态实例,Application没有引用它们。因此,在Android系统中发生高内存压力时,它们很容易被垃圾回收或失去状态控制。因此,如果koin创建的单例占用大量内存,我们最好避免使用Koin。

我的问题是:

  1. 由koin创建的类是否由Application引用了{}?在深入学习koin源代码以证明这一点之前,我应该首先阅读源代码吗?
  2. 由koin single创建的类{}是否容易在Android中发生内存不足时被收集?假设该单例实例名为SdkManager,其工作是加载3-5个第三方库。
  3. singlefactory以外是否还有其他初始化方法?
android singleton koin
1个回答
0
投票

我的同事认为Koin创建了这些类的静态实例

不清楚您的同事所说的“静态实例”是什么。

它们未被应用程序引用

Application子类引用了Android中很少的单例,至少通过我如何使用术语“被引用”。

因此它们很容易被垃圾收集

没有这将使Koin或任何其他依赖项反转框架无效。

或在Android系统中发生高内存压力时失去状态控制

如果“系统”(设备?)的内存不足,Android将终止进程。这将消除受影响进程中的所有对象,无论它们是否由Koin管理。

由koin single创建的类{}在Android中发生内存不足时是否容易被收集?

编号

除了single和factory以外,还有其他初始化方法吗?

viewModelfragment用于Android应用程序。参见the koin-android documentation

© www.soinside.com 2019 - 2024. All rights reserved.