Métodos estáticos como en la aplicación de Android con kotlin

Estoy intentando agregar un método "estático" a mi class MyApplication en kotlin. He agregado (como propiedad) la variable:

private var context: Context? = null 

en método:

 override fun onCreate() 

Yo añadí:

 context = applicationContext 

luego agrego un object complementario como este

 companion object { @JvmStatic fun getMyApplicationContext(): Context? { return MyApplication().context } } 

cuando llamo a este método desde otras partes de la aplicación como MyApplication.getMyApplicationContext() siempre devuelve null. He recogido todo esto de varias fonts, pero no estoy seguro de si es correcto o no.

Parece que quieres un object de context de aplicación global. Ahora, dejando de lado mi disgusto por las variables globales, creo que eres muy cercano.

Creo que solo necesita agregar la variable en el object complementario de las classs MyApplication y usarla directamente. Solo necesita la anotación @JvmField si va a acceder al campo desde 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 } } 
  • Diseño inflado por progtwigción con las extensiones de Kotlin para Android
  • Kotlin: ¿Cuál es el uso de la class sin cuerpo?
  • Error de puntero nulo al hacer reference a RecyclerView en un fragment con Kotlin
  • Dagger2 no genera classs Dagger
  • Los cambios de Android Studio 3.0 Kotlin no se reflejan en la compilation
  • Comprobación de conectividad no funciona en Android Oreo Kotlin
  • Convierta la actividad principal con la barra de acciones / barra de herramientas y el button de acción flotante a Anko
  • Botones de acceso del layout inflados programáticamente dentro de otro layout