Android:setRetainInstance屏幕旋转的不良做法?

时间:2015-08-09 21:21:47

标签: android android-fragments

我知道片段中的SetRetainInstance是可能的,这样当一个活动被破坏时,fragmetn就不会被它破坏。然后,当重新创建活动时,我们可以重新附加片段。我看到很多人使用它进行屏幕旋转,但这不是一种不好的做法吗?

或者我们可以忽略这个吗?

如果我们无法使用SetRetainInstance,在配置更改之间保存信息的理想方法是什么?

如果我在片段中使用了SetRetainInstance,这确实有一个查询,这意味着当活动被破坏时它不会被销毁,那么我们如何确保此活动不会被遗忘呢? / p>

这是一个问题吗?

由于

1 个答案:

答案 0 :(得分:0)

  

我知道它可能在一个片段中使用SetRetainInstance,这样当一个   活动被破坏了,碎片不会被破坏。然后呢   重新创建活动,我们可以重新附加片段。我看到很多   使用它进行屏幕旋转的人,但这不是一种不好的做法吗?

没有。如果原始片段存在,则重新附加原始片段的做法是避免每次方向更改时创建新实例。

  

或者我们可以忽略这个吗?

如果这样做,那么您将不必要地在每次轮换时创建一个新实例。

  

如果我们这样,在配置更改之间保存信息的理想方式是什么   不能使用SetRetainInstance?

取决于您要保存的信息类型。一种方法是使用onSavedInstanceState和onRestoreInstanceState。

  

如果我在片段中使用SetRetainInstance,我确实有一个查询   意味着当活动被破坏时它不会被破坏   那么我们如何确保此活动不会落后?

在这种情况下,也将调用onPet和onDestroyView。您可以在此清理任何视图/活动参考。