-1

我有一个带有操作栏、选项卡和一些片段的主要活动。每次我切换标签时,都会重新创建完整的片段。在某些片段上,我有一个列表视图,其中包含从 Web 服务加载的内容,我不希望从 Web 服务中调用它...列表视图是单击列表视图,因此您可以浏览它。

片段是最好的选择,还是我需要其他东西来保持内容的活力。例如来自 iOS 的标签栏,每个视图控制器都保持活动状态。

谢谢你的帮助!

4

1 回答 1

0

我不知道是否可以更改行为以使Fragments 持久保存在内存中,但我确实记得在使用时需要自己做类似的事情,可以指定适配器FragmentPagerAdapter的最大 s 数Fragment在它开始破坏它们之前,它会留在内存中。但是,这是我出于特殊原因所做的一个例外情况。

正确的“Android 方式”是设计您Fragment的 s 和Activity类,以便它们能够例行地处理创建/销毁周期,在这样做时持久化和调用它们的状态。您最好不要尝试更改破坏和创建行为,而是Fragment使用为该目的而设计的现有生命周期方法从 s 中持久保存您的状态数据。从 Web 服务加载的数据应根据数据类型适当缓存在某处。应该意识到的是Fragment/Activity类也确实需要能够应对在设备旋转等事件期间被破坏的情况。如果设备进入睡眠状态,或者应用程序进入后台等,也会发生这种情况。因此,很难摆脱在onDestroy()/onCreate()周期之间保持状态和 Web 服务数据的需要。

于 2013-02-04T17:16:15.627 回答