Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Non-UI Fragment vs Singleton

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)?

like image 390
Iñigo Avatar asked Jul 20 '12 10:07

Iñigo


1 Answers

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.

like image 85
CommonsWare Avatar answered Sep 21 '22 00:09

CommonsWare