Android 以Koin方式广播模拟的静态场和对象

Android 以Koin方式广播模拟的静态场和对象,android,kotlin,static,koin,Android,Kotlin,Static,Koin,让我们想象一下,我们有一些数据,应该在这两个不同的活动中使用。以及一些不需要redurant初始化就可以在不同活动中使用的对象(代码更少,CPU使用更少) 例如,我们可以在第一个活动中初始化publicstaticSoundPool对象并向其加载声音,然后在第二个活动中通过此声音池播放声音 有些人告诉我,这是一种糟糕的编码方式。但他们也没有告诉我如何正确地做 我试图找到一些聪明的方法。我希望我们可以使用Koin来注入任何以前的静态对象,以便在我们的项目中使用它。但是没有关于如何注入SoundPo

让我们想象一下,我们有一些数据,应该在这两个不同的活动中使用。以及一些不需要redurant初始化就可以在不同活动中使用的对象(代码更少,CPU使用更少)

例如,我们可以在第一个活动中初始化publicstatic
SoundPool
对象并向其加载声音,然后在第二个活动中通过此声音池播放声音

有些人告诉我,这是一种糟糕的编码方式。但他们也没有告诉我如何正确地做

我试图找到一些聪明的方法。我希望我们可以使用
Koin
来注入任何以前的静态对象,以便在我们的项目中使用它。但是没有关于如何注入
SoundPool
对象以达到“最佳实践”方式的信息

问题是:

我们如何(可以?)使用Koin来注入特殊对象(如声音池)

小问题:

在我的静态类中还有一些静态字段,我以前用于广播用户设置(例如音量设置)。我如何替换它以达到“最佳实践”的方式


“我们有一些数据应该在两个不同的活动中使用”——也许它们应该是一个包含多个片段的单个活动。“但是没有关于如何注入声音池对象的信息”-SoundPool不是一个特殊的对象。您可以使用与注入其他任何内容相同的方式来注入其中一个应用程序,如中所示的示例
演示者
。@commonware我希望在将来使其成为单活动应用程序,但我的问题是关于多活动应用程序。然后我的意思是,
SoundPool
给出了加载的每个声音的id(我们使用它来播放声音),但是如果我们以这种方式初始化它,我们就不能传递它,不是吗?“但是如果我们以这种方式初始化它,我们就不能传递它,不是吗?”--对不起,我不理解这个问题。如果它作为Java
静态
字段或Kotlin顶级属性为您工作,那么它应该作为Koin
单个
为您工作。