android - 关于 fragment 生命周期的困惑

标签 android android-fragments fragment android-fragmentactivity activity-lifecycle

我有一个托管 ViewPager 并包含三个选项卡(MQTT、ECO、Logger)的 mainActivity。 mainActivity 具有生命周期回调(onCreat、onResume),其他三个选项卡具有 Fragment' 生命周期回调(onattached、onCreateView、onViewcreated、onResume、onPause)。

在运行时,我在 logCat 中收到以下内容:

01-29 13:28:28.732: W/MainActivity(31412): @onCreate().
01-29 13:28:28.802: W/MainActivity(31412): @onResume().
01-29 13:28:28.842: W/MQTT_Settings_Frag(31412): @onAttach().
01-29 13:28:28.842: W/MQTT_Settings_Frag(31412): @onCreateView().
01-29 13:28:28.862: W/MQTT_Settings_Frag(31412): @onViewCreated().
01-29 13:28:28.862: W/MQTT_Settings_Frag(31412): @onResume().
01-29 13:28:28.862: W/Eco_Settings_Frag(31412): @onAttach().
01-29 13:28:28.862: W/Eco_Settings_Frag(31412): @onCreateView().
01-29 13:28:28.892: W/Eco_Settings_Frag(31412): @onViewCreated().
01-29 13:28:28.892: W/Eco_Settings_Frag(31412): @onResume().

当我滑动到生态选项卡“第二个”时,logCa 只报告 fragment ,但是当我滑动到第三个选项卡“记录器”时 - 这已经 已实现 - logCat 显示:

01-29 13:37:27.062: W/MQTT_Settings_Frag(31412): @onPause().

当我从 Logger-tab 返回 Eco-Tab 时,LogCat 显示以下内容:

01-29 13:37:52.292: W/MQTT_Settings_Frag(31412): @onCreateView().
01-29 13:37:52.322: W/MQTT_Settings_Frag(31412): @onViewCreated().
01-29 13:37:52.322: W/MQTT_Settings_Frag(31412): @onResume().


why the first tab "MQTT-Tab" goes in onPause() when i goto only to the third Tab Logger-Tab?
And why the first tab "MQTT-Tab" goes into (onCreateView, onViewCreated, onResume) when i move to the secondtab Eco-tab frm the third one LoggerTab?

最佳答案

默认情况下,ViewPager 只在内存中保留相邻的选项卡,因此当您转到第三个选项卡时,您的第一个选项卡会被销毁,并在您返回中间时重新创建。您可以使用 yourViewPager.setOffscreenPageLimit(int) 更改此行为。

关于android - 关于 fragment 生命周期的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215105/

相关文章:

android - 如何使用 Crosswalk 长按获取 URL?

java - 在Android Studio中导入GraphStream库

android - 我在 android studio 中实现菜单抽屉时出错

android - 如何在选项卡中设置图像/图标而不是文本?

Android - API 级别 < 11 的 fragment API

java - 后端提醒任务完成后如何通过我的消息发送通知

android - 类似于 Android 的 Cocoa Pods 和 Bundler(用于依赖项)?

Android - 分屏时的 ActionBar(列表/详细信息)

android - onRequestPermissionsResult 未在 fragment android 中调用

android - Fragments 和 FragmentPagerStateAdapter - 重新创建具有相同 ID 的 View 失败