【发布时间】:2017-01-23 01:13:45
【问题描述】:
我正在尝试在 kotlin 中向 MyApplication 类添加“静态”方法 我已添加(作为属性)变量:
private var context: Context? = null
在方法中:
override fun onCreate()
我补充说:
context = applicationContext
然后我添加一个像这样的伴随对象
companion object {
@JvmStatic fun getMyApplicationContext(): Context?
{
return MyApplication().context
}
}
当我从应用程序的其他部分调用此方法时,例如
MyApplication.getMyApplicationContext() 它总是返回 null。我从多个来源收集了所有这些信息,但我不确定它是否接近正确。
【问题讨论】:
-
使用
return MyApplication().context,您正在创建一个新的 MyApplication 对象。然后您将使用.context访问上下文,它为空,因为在您手动创建对象时不会调用onCreate()。 -
context 看起来像一个实例变量,你正试图从一个你不能做的静态函数中访问一个实例变量。将上下文的声明移动到伴随对象中,使其也成为静态的。
标签: android kotlin kotlin-android-extensions