在retainstance = true的情况下查看backstack片段的状态

我在碎片中加载了加载器,并在后台加载数据。 数据加载后,我用这些信息填充edittext。 问题是,如果用户改变了edittext中的内容并旋转屏幕,onLoadFinished会再次被调用,并且edittext被替换为加载的信息。 我通过添加帮助变量来解决这个问题,如果数据已经加载了。但是当我用其他代码替换这个片段时,来回旋转屏幕并按下返回按钮,edittexts为空。 片段被设置为保留实例真实。 当片段在后台时,看起来视图丢失了状态。 任何人都熟悉这个?


你不应该使用保留状态。 但是,正确的方法是使用Bundle保存保存并在重新创建活动时恢复它(onCreate Bundle不是新的)。

请查看我发送给您的链接,其中包含一个非常具体的示例。

从android开发指南:

要正确处理重新启动,重要的是您的活动通过正常的Activity生命周期恢复其以前的状态,在该生命周期中Android会在销毁活动之前调用onSaveInstanceState(),以便保存有关应用程序状态的数据。 然后可以在onCreate()或onRestoreInstanceState()期间恢复状态。

Android旋转更改

链接地址: http://www.djcxy.com/p/58699.html

上一篇: View state at fragment on backstack with retaininstance = true

下一篇: Best practice for instantiating a new Android Fragment