问题标签 [fragment-lifecycle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
61 浏览

android - 生命周期完成并重新启动后对 Fragment 的引用

我试图在 90 秒后激活一个可运行文件。但是如果用户离开片段然后回来,当计时器到达时,它会崩溃。这是我到目前为止所拥有的。

当他们点击按钮时:

RefreshRunnable 类:

所以在 90 秒内,它应该激活一个网格项。如果我整整 90 秒都停留在片段上,它将起作用。但是如果我离开然后回来,当 90 秒时,它会崩溃。

0 投票
0 回答
431 浏览

android - viewpager 中的片段被回收而不是重新加载

我在浏览器中有片段。viewpager 加载片段向前一个索引和一个索引在当前索引后面。

用户可以滚动查看页面,这会使用更多内存,因为其他图像对象在布局的其他部分进行处理。当他们向上滚动到 viewpager 时,向前的索引可能不会显示任何内容,因为整个片段被回收(或其他东西)。当用户在 viewpager 中向左滚动几次并再次向后滚动时,丢失的片段会被正确地重绘。

我可以检测到一些片段生命周期事件以确保它永远不会显示空版本吗?就像一种强制片段重新加载的方法,以防它的适配器回收它

0 投票
1 回答
514 浏览

android - Android片段参数包在任何情况下都会被破坏吗?

默认 Android Studio 生成代码:

空检查真的有用吗?换句话说,参数包在任何情况下都会被销毁吗?

编辑:顺便说一句,我也无法理解:

片段的实例已经(或将要)消失了,那么将 mHandler 设置为 null 是什么意思呢?

0 投票
1 回答
106 浏览

android - 我应该如何在 android 上保存包含 listview 的 Fragment 状态?

在我的应用程序中有两个片段和一个活动。在所有这些上,我都使用了 listview 并从数据库中填充内容。当旋转屏幕时,活动中内容的位置不会改变并以正确的方式开始(正如我用谷歌搜索并理解由于“Bundle savedInstanceState”而导致活动正常)。我的问题是片段部分,片段上的两个列表都是太长的列表,当按回并返回片段开始导航到适当的项目时,最终用户可能会很烦人。我用谷歌搜索并找到了我的问题的一些答案,但它们对我不起作用。

0 投票
3 回答
6934 浏览

android - android - 从活动调用完成会破坏托管片段吗?

我有一个托管“片段 B”的“活动 A”。请确认如果我调用 A.finish() 则“片段 B”会被销毁。片段 B 已经添加到片段管理器中。我意识到一个片段是一个子活动,但我想知道我是否必须告诉片段管理器在 Ondestroy 中释放片段还是全部处理好?

0 投票
0 回答
476 浏览

android - 如何在另一个片段中调用片段而不在android中重新加载片段?

我在我的应用程序中使用了两个片段来显示列表和详细信息视图。当我按下列表片段时,它应该显示详细视图片段,当我按下它时,它应该显示列表片段。这个流程工作正常,但问题是,它每次加载列表片段(而不是恢复它创建片段的片段)。任何身体面临的问题都可以请帮我解决这个问题。

//活动类

//片段1:

//片段2:

0 投票
1 回答
4121 浏览

android - onDetach 不要求片段?

我编写了一个代码来启动 Activity A 到 Activity B。Activity A 和 B 都有片段实现。

场景:如果 Activity A 经常启动包含 Fragment 的 Activity B,那么大多数时候它错过了 Fragment.onDetach ..我检查了日志,通常它会给我以下覆盖方法日志:

  1. 附加
  2. 项目清单
  3. OnCreatView
  4. onViewCreate 然后按设备返回按钮
  5. 暂停
  6. 停止
  7. 销毁视图
  8. 分离

现在我从 Activity B 按下设备返回按钮,该按钮再次启动 Activity A,然后它启动 Activity B 并经常重复相同的序列,然后日志序列按以下顺序更改:

  1. 附加
  2. 项目清单
  3. OnCreatView
  4. onViewCreate 然后按设备返回按钮
  5. 暂停
  6. 停止
  7. onDestroyView 并重复
  8. onAttach 没有 onDetach

有时它也会在 onPause 之后重复相同的行为。

我在用

有什么我想念的……有什么建议吗?

0 投票
2 回答
6890 浏览

android - Activity 和 Fragment 生命周期,onResume 会一个接一个地触发吗?

我想知道当用户ActivityHome Screen.

Activity's onResume()先执行,然后再Fragment's onResume()执行吗?它是按顺序进行的,还是同时进行?

我在 Fragment 的 onResume() 中放了一些代码,但在 Activity 的 onResume() 之后似乎没有触发。

0 投票
3 回答
164242 浏览

android - Fragment中onCreate()、onCreateView()和onActivityCreated()的区别和使用

、 和in 片段之间有什么区别onCreate(),它们各自的用途是什么?onCreateView()onActivityCreated()

0 投票
1 回答
938 浏览

android - 从后台堆栈重新创建片段时未调用处理 onResume()

我最近开始通过用片段替换“所有”活动来重构我的 Android 应用程序。在现在的状态下,它的表现比以前差了很多……

我的问题在于“向上导航”、回栈行为和将片段放在前面时对片段的一般“重新绘制”。

所以我在我的用户界面中创建了一个逻辑层次的片段,当用户在主菜单中时,不应该显示“向上”按钮。当用户在任何其他片段中时,向上按钮应将用户带回主菜单。

当我开始实现这个时,我只是放了一个

在我的片段的 onResume 方法中。这将按预期工作,直到主菜单从后堆栈(或主页导航)移到前面。然后不调用 onResume() 方法。

当用户在应用程序的其他地方时想要“重新绘制”片段似乎是大部分开发人员想要做的事情。我已经阅读了一些解决方案,基本上包括监听 backstack 更改,然后为即将返回的片段调用 onResume()。这个解决方案感觉就像一个丑陋的黑客,你不应该在真正的应用程序中拥有。那么大型应用程序的开发人员如何处理这个问题呢?最佳做法是什么?还是我错过了一些原则,说明如何根本不将自己编码到这个角落?

我必须说,我认为 Fragment 的 Android 开发页面几乎是在说生命周期:

“管理片段的生命周期很像管理活动的生命周期”

“已恢复:片段在正在运行的活动中可见。”

此信息意味着当片段从不可见变为可见时应调用 onResume()。

另外,我提供导航的解决方案显然不正确,关于如何获得正确行为的任何提示?

谢谢你的帮助!