在Android应用程序中使用kotlin静态类似的方法
我想添加一个“静态”方法,我的MyApplication类在kotlin我已经添加(作为一个属性)的变量:
private var context: Context? = null
在方法中:
override fun onCreate()
我补充说:
context = applicationContext
然后我添加一个像这样的伴侣对象
companion object { @JvmStatic fun getMyApplicationContext(): Context? { return MyApplication().context } }
当我从MyApplication.getMyApplicationContext()
这样的应用程序的其他部分调用这个方法时,它总是返回null。 我已经从几个来源收集了所有这些,但我不确定它是否接近正确或不正确。
听起来你想要一个全局的应用程序上下文对象。 现在抛弃我对全局变量的厌恶,我认为你是非常接近的。
我想你只需要将变量添加到MyApplication
类的伴侣对象中并直接使用它。 如果您要从Java访问该字段,则只需要@JvmField
批注。
class MyApplication { companion object { @JvmField var context: Context? = null // Not really needed since we can access the variable directly. @JvmStatic fun getMyApplicationContext(): Context? { return context } } override fun onCreate() { ... MyApplication.context = appContext } }