Android非UI片段的用法

我正在浏览Fragments上的Android文档 。 定义片段UI的布局可以在Activity的布局中定义,也可以在单独的.xml文件中定义,或根本不定义。

根据文件

您还可以使用片段为活动提供背景行为,而无需呈现额外的UI。

为什么我需要使用另一个片段来为Activity添加function,而不是在Activity中定义更多的function? 这样的非UI片段只是为了模块化吗? 采用这种方法还有另外一个原因吗? 我将不胜感激一个适合使用非UI片段的例子。

预先感谢您的帮助。

Solutions Collecting From Web of "Android非UI片段的用法"

我想这是关于保留的片段,你可以调用setRetainedInstance(true)的内部片段,这样你的片段将不会在configuration更改期间重新创build。 通常当你旋转你的设备时,所有的碎片将被重新创build。 如果在onCreate()中调用setRetainedInstance(true),那么将不会重新创build片段实例。

什么使用它? – 你可以把一些数据,数组等放在你的片段中,在configuration改变时不会被破坏。 你也可以把asynchronous任务放到这个片段中,在主要活动轮换之后,片段中的asynchronous任务仍然能够传递结果。

片段的另一个有用的function是,您可以轻松地在多个活动中重复使用它们。 这意味着你可以在你的非UI片段中放置一些通用的逻辑。 你可以说让你的活动用基类完成,但是你只能扩展一个类。

和简单的例子从谷歌(实际上使用线程内保留的片段):

https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/FragmentRetainInstance.java