我有一个问题:我喜欢使用单例模式创建一个MainController
来处理我应用的所有数据。
这在Android中是不好的做法,还是专业软件开发人员做的相同?
答案 0 :(得分:7)
避免在单身人士中使用活动上下文。它可以防止垃圾收集器清除该活动的链接。
请记住,android可以随时重新创建您的应用程序,因此请准备好您的单例将失去其状态。 saveInstanceState
/ restoreInstanceState
可以帮助解决这些问题。
答案 1 :(得分:1)
如上所述,Singleton模式是一种设计模式,因此使用它没有问题。
但是,请记住,应用程序可能会在任何时候被杀死,因此您的单身人士也会被杀死。你应该能够重建你的班级。
例如,我通常使用静态get(Context)
而不是get()
,以便我可以使用此上下文从SharedPreferences或Files中实例化我的单例,以防它不存在。
无论如何,单身是一种可以在Android上使用的设计模式。