我有一个应用程序,我需要创建它的库。该应用程序有一个服务,我缺少的部分是我有一个继承自应用程序的类,以便有一个单例。我怎样才能更换它? 10xs, 内厄姆
答案 0 :(得分:2)
我该如何更换?
作为“20年编程”的人,您已经知道答案:use standard Java singletons。
如果您愿意,欢迎您强制使用您的库的应用程序使用您的自定义Application
子类。一般使用Application
子类并不是一个特别灵活的解决方案,因为只能有一个,这就是为什么使用标准Java单例是推荐的替代方案。
确保您的Java单例与自定义Application
类一样,不会引入内存泄漏。例如,Java单例不应该保留Context
,除了 Application
对象,因为任何其他Context
应该是瞬态的(例如,{{1} }})。
当然,更好的方法是尝试完全避免使用自定义Activity
类和单例,尽管它们在Android中非常适用于内存缓存等内容。