2013-05-20 118 views
0

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

回答

0

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

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

从Android开发者指南

要正确处理重新启动,但重要的是你的活动 通过正常的活动周期恢复以前的状态,在 的Android电话的onSaveInstanceState()它摧毁之前您的 活动,以便您可以保存有关应用程序状态的数据。然后您可以在onCreate()或onrestoreInstanceState()中恢复状态 。

Android Rotation Change

+0

为什么我不应该使用它?设置保留实例是非常有用的imho,我想使用该功能 – Billda

相关问题