Android fragments Android片段和setRetainInstance(true)

Android fragments Android片段和setRetainInstance(true),android-fragments,Android Fragments,我使用的是support fragment,在我的片段中有setRetainInstance(true)。我了解到,如果片段中有setRetainInstance(true),则在配置更改时不会调用该片段的onCreate()和onDestroy()。但仍然会重新创建活动,并且片段的onCreate()当我在samsung note3中更改字体样式时调用。这是配置更改吗?如果是,为什么片段实例被初始化。如果不是配置更改,我们应该如何处理。任何人请澄清。我发现这个问题很有趣,因为它与配置更改有关。

我使用的是support fragment,在我的片段中有setRetainInstance(true)。我了解到,如果片段中有setRetainInstance(true),则在配置更改时不会调用该片段的onCreate()和onDestroy()。但仍然会重新创建活动,并且片段的onCreate()当我在samsung note3中更改字体样式时调用。这是配置更改吗?如果是,为什么片段实例被初始化。如果不是配置更改,我们应该如何处理。任何人请澄清。

我发现这个问题很有趣,因为它与配置更改有关。正如您所知,所有配置更改通常都会触发onCreate()和onDestroy()。这是有道理的,除非您不遵守片段生命周期,否则您的代码通常都不关心。为了其他读者的利益,setRetainInstance(true)不应该像您所说的那样触发onCreate()和onDestroy()

字体样式的更改肯定是配置的更改。三星可能会重新加载你的应用程序活动,他们可以做到这一点,他们会制作自己的Android主屏幕。 我发现了一个相关的SO网页@。读那篇文章的答案


我的一个建议是将代码放在onCreate()中,这样您就不会关心这个问题。否则,您可能必须覆盖字体更改或其他更改的方法。

我注意到您发布了两个完全相同的问题。请删除旧的,以免其他读者和将来的帖子混淆。@TheOriginalAndroid删除了旧问题。很抱歉重复输入。无法在oncreate()中完成片段中的绑定视图。请详细说明,重写字体更改的方法?如果可以跟踪这些配置更改,那么最好退出应用程序,但我们仍然没有一种通用的方法来获取应用程序中“这些更改”的回调。