Поэтому в android я хочу сделать свой класс приложения синглом.
Сделав это так:
object MyApplication: Application(){}
не будет работать. После эррос бросается во время выполнения:
java.lang.IllegalAccessException: private com....is not accessible from class android.app.Instrumentation.
Выполнение этого также невозможно:
class MyApp: Application() {
private val instance_: MyApp
init{
instance_ = this
}
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree());
}
}
companion object{
fun getInstance() = instance_
}
}
Итак, как я могу получить экземпляр класса приложения в моем приложении, хотел бы использовать MyApp.instance()
вместо (applicationContext as MyApp)
.
Также объяснение, почему я хочу это: у меня есть классы в моем приложении, например, SharedPreference Singleton, который инициализируется контекстом и как его одноэлемент, не может иметь аргументов.