首页 > 解决方案 > Android Kotlin 从对象中检索上下文

问题描述

嘿,我正在使用带有 Kotlin 的 Android Studio,并且我有一个活动和一个服务都需要调用相同的方法,所以我创建了一个包含这些方法的对象,这就像一个 utils 类。

问题是这些方法依赖于一个需要创建应用程序上下文的字段,而我发现检索上下文的唯一方法是将它传递给构造函数,但由于它是一个对象,我不能这样做。

如何保持该对象行为并检索应用程序上下文?

标签: androidkotlin

解决方案


在 Kotlin 中,对象的行为类似于静态 util 类(不完全是字节码级别),因此您可以执行的选项很少

  1. 在需要上下文的对象中的每个 util 方法中传递上下文
  2. 创建一个类并保持应用程序上下文的全局引用,并通过在`s方法中创建和初始化它在Application任何地方使用它lateinit varApplicationonCreate
  3. 或者使用 DI 来注入应用程序上下文,而不是使用对象,而是使用在各处注入的单例范围实用程序

推荐阅读