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