Non-UI Fragment vs Singleton

2019-06-16 07:01发布

问题:

I guess that the main purpose of the non-UI fragments is the storage of data that is retained over configuration changes, right? So, appart from being this storage specific for the Activity that owns this fragment, which is the benefit of its usage over a Singleton pattern across the entire application (which is the solution I've been doing so far)?

回答1:

The fact that a fragment is scoped to its activity means there is less chance of a long-term memory leak, as opposed to singletons -- the fragment should eventually get garbage-collected, while the singleton will not.

You also have somewhat more control over timing. The Application is created just after any ContentProviders in your app, and you have no choice on that. Conversely, you control when fragments get created, and therefore may be able to take advantage of that control.

So, for places where the data is really only needed by an activity, a non-UI fragment is probably a better idea than a singleton. The singleton would be for places where the data is needed across multiple components.