所以在android中,我想讓我的應用程序類是一個單身人士。Kotlin SingleTon應用程序類
使其像這樣:
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用上下文初始化,並且作爲其單例,不能有參數。
這看起來不錯@nitrico,但我無法獲得'val Context.myApp:MyApp get()= applicationContext作爲MyApp的部分工作。你可以進一步瞭解更多細節嗎?這條線路需要去哪裏以及如何在另一個班級訪問? – shredder