非UI Fragment vs 单例模式

9

我猜测非UI片段的主要目的是存储在配置更改后保留的数据,对吗?因此,除了这种存储特定于拥有此片段的Activity之外,与整个应用程序中的Singleton模式相比,使用它的好处是什么?(这是我迄今为止一直在使用的解决方案)

1个回答

16

一个片段(Fragment)仅被其活动(Activity)作用范围所限制,这意味着长期内存泄漏的可能性较小,相对于单例模式--片段将最终被垃圾回收,而单例模式则不会。

此外,你还可以更好地控制时间。应用程序(Application)是在应用程序中任何内容提供者(ContentProviders)之后创建的,你对此没有选择权。相反,你可以控制片段何时创建,因此可能能够利用该控制。

因此,对于仅由一个活动需要数据的地方,非UI片段可能比单例模式更好的选择。单例模式适用于在多个组件之间需要使用的数据。


谢谢您的回复。这正是我所想的。我将坚持使用单例来存储应用程序,并为活动范围数据实现非UI片段。 - Iñigo
这解释了我为什么要花一个小时思考为什么使用无界面片段而不是单例。 - RamIndani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接