我有一个带有操作栏,标签和一些片段的主要活动。每次切换选项卡时,都会重新创建完整的片段。在一些片段上,我有一个列表视图,其中包含从web服务加载的内容,我不希望从webservice中调用它...列表视图是一个单击列表视图,因此您可以浏览它。
片段是最佳选择还是我需要其他东西来保持内容保持活力。例如iOS中的tabbar,每个viewcontroller都保持活动状态。
感谢您的帮助!
答案 0 :(得分:0)
我不知道是否有可能改变行为以使Fragment
在内存中持续存在,但我确实记得在使用FragmentPagerAdapter
时需要自己做类似的事情,在开始销毁之前,可以指定适配器在内存中保留的最大Fragment
个数。然而,这是我出于特殊原因所做的一个例外情况。
正确的'Android方式'是设计你的Fragment
和Activity
类,以便他们可以定期处理创建/销毁周期,坚持并回忆他们的状态。最好不要尝试更改销毁和创建行为,而是使用为此目的设计的现有生命周期方法来保留Fragment
中的状态数据。从Web服务加载的数据应根据数据的类型在适当的位置缓存。应该意识到的是,Fragment
/ Activity
类实际上也需要能够应对在设备轮换等事件期间被破坏。如果设备进入休眠状态,或者应用程序进入后台等,也会发生这种情况。因此,很难摆脱在onDestroy()
/ {{1}之间保持状态和Web服务数据的需要。循环。