backstack上片段的视图状态,保留实例= true



我有加载器在片段,它在后台加载数据。加载数据后,我用这些信息填充编辑文本。问题是,如果用户在edittexts中改变了一些东西并旋转屏幕,onLoadFinished再次被调用,edittexts被加载的信息所取代。我通过添加帮助变量来解决这个问题,如果数据已经加载。但是当我用其他替换这个片段时,来回旋转屏幕并按后退按钮,编辑文本是空的。Fragment被设置为保留实例true。当fragment在backstack上时,视图似乎失去了它的状态。有人熟悉这个吗?

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

请查看我发给你的链接,它包含一个非常具体的例子。

from android dev guide:

要正确处理重启,重要的是您的activity在正常的Activity生命周期中恢复其先前的状态哪个Android在销毁你的文件之前调用onSaveInstanceState()活动,以便保存有关应用程序状态的数据。你然后可以在onCreate()或onRestoreInstanceState () .

Android Rotation Change

最新更新