我试图在我添加(作为属性)变量的kotlin中的MyApplication类中添加“静态”方法:
private var context: Context? = null
在方法中:
override fun onCreate()
我补充说:
context = applicationContext
然后我添加一个这样的伴侣对象
companion object {
@JvmStatic fun getMyApplicationContext(): Context?
{
return MyApplication().context
}
}
当我从应用程序的其他部分调用此方法时,MyApplication.getMyApplicationContext()
它总是返回null。我已经从多个来源收集了所有这些信息,但是我不确定它是否正确。
听起来您想要一个全局应用程序上下文对象。现在抛开我对全局变量的厌恶,我认为您已经非常接近了。
我认为您只需要将变量添加到MyApplication
类随播对象中并直接使用即可。@JvmField
如果要从Java访问该字段,则仅需要注释。
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
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句