setRetainInstance不适用于android中的配置更改

时间:2012-01-09 06:04:09

标签: android

我有不同的potrait设计和活动景观。所以我使用布局 - 土地布局。我把webview放在片段里面,给出了setRetainInstance(true)和像google一样的网址。当配置改变它再次加载可以任何人告诉如何避免.i没有提到android:configchanges =“orientation”在android manifestfile中因为 不同的设计可以帮助解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:1)

片段实际上可以让这更容易。只需使用方法Fragment.setRetainInstance(boolean)就可以在配置更改中保留您的片段实例。请注意,这是文档中Activity.onRetainnonConfigurationInstance()的推荐替代。

如果由于某种原因您确实不想使用保留的片段,您可以采取其他方法。请注意,每个片段都有Fragment.getId().返回的唯一标识符。您还可以查看片段是否因为配置更改而被拆除  Fragment.getActivity().isChangingConfigurations()。因此,在您决定停止AsyncTask(最有可能在onStop()或onDestroy()中)的情况下,您可以检查配置是否正在更改,如果是,则将其粘贴在片段标识符下的静态SparseArray中,然后在你的onCreate()或onStart()中查看你是否在稀疏数组中有一个AsyncTask。