当前位置: 首页 > 知识库问答 >
问题:

Android片段和setRetainInstance(true)

欧阳勇军
2023-03-14

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

共有1个答案

汪和悌
2023-03-14

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

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

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

 类似资料:
  • 在我的应用程序中,我使用了一个活动和两个片段。该应用程序使用带有容器的布局,因此片段是通过事务添加的。第一个片段包含列表视图,另一个片段包含列表视图项的详细视图。两个片段都使用setRetainInstance(true)。片段是通过替换事务添加的,并设置了addToBackStack(null)。列表片段包含一个实例变量,其中包含列表的一些信息。现在我正在切换到详细并按回,实例变量为null。我

  • 从文档开始: public void setRetainInstance(布尔保留) 控制片段实例是否在activity重新创建过程中保留(例如从配置更改)。这只能与不在后堆栈中的碎片一起使用。如果设置,则在重新创建activity时,片段生命周期将略有不同: 将不调用onDestroy()(但仍将调用onDetach(),因为该片段正在与其当前activity分离)。 由于未重新创建片段,因此不

  • 问题内容: 因此,我到了需要为我的应用程序实现SQLite数据库的地步。遵循“ Android开发的繁忙程序员指南”,我创建了一个Extended的DatabaseHelper类。 我的用例之一是对数据库运行查询,并在内显示结果(我使用支持库中的片段)。 据我了解,使用并不是真正合适的方法,即使不建议使用,因为实际上封装在该方法中的某些逻辑实际上是在主线程上执行的,据我所知具体是在重新启动。 因此

  • 对于我工作的应用程序,我需要实现可访问性。除了一个屏幕外,其他一切都很好,我必须将片段添加到我的活动中。基本上,上面的片段是一个拨号键盘,用于输入密码。此片段与fragmentTransaction一起添加。 问题是对讲的焦点是设置在下面片段的元素上。 您知道是否有办法将对讲焦点设置在拨号片段上吗?我只想“禁用”下面的片段以获得焦点 谢谢,

  • 本文向大家介绍Android ViewPager基本用法和片段,包括了Android ViewPager基本用法和片段的使用技巧和注意事项,需要的朋友参考一下 示例 AViewPager允许在活动中显示多个片段,可通过向左或向右翻转来导航。甲ViewPager需要被馈送通过使用任一视图或片段的PagerAdapter。 但是,在使用片段分别为FragmentPagerAdapter和的情况下,有两

  • 在Android中,当我们用一个新的片段替换容器视图时,我们可以使用replace()和addToBackStack(),因此按下back按钮就可以转到上一个片段。 但如果出现以下情况怎么办: 在Activity1中,我可以按下back按钮从fragment2转到fragment1。但当fragment2启动另一个活动时,从Activity2按下back按钮,它会将我带到Activity1中的fr