我有一个Authenticator
类,需要使用context
来完成对SharedPreferences
的某些任务。我在自定义应用程序类中创建了该类的单例,因此无需每次都传递上下文来创建Authenticator
的实例。这是正确的方法还是会导致内存泄漏或其他问题?
我的Application
类:
class App : Application() {
override fun onCreate() {
super.onCreate()
//Plant Timber for Logging in Debug Build
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
Authenticator.createInstance(this)
}
...
....
}
在其他类上,我可以像这样访问单例:
Authenticator.INSTANCE
当具有生命周期的诸如Context
,Activity
,Application
,...之类的对象存储为静态或静态对象时,您应注意在其生命周期结束时清除它们。如果这样做,则存储它们应该没有任何问题。只要在生命周期结束。
[为了进一步说明,Activity's
生命周期以onDestroy
结尾,您应该重写此功能并正确释放对其的访问。有关更多详细信息,您可以访问生命周期的android文档。对于诸如应用程序终止的情况,应用程序使用的所有内存都将被清除并且不会发生泄漏,因此您不必担心Application
类中的访问,例如保存全局应用程序上下文。