`
huaxin803
  • 浏览: 113324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Fragment---处理Fragment生命周期

 
阅读更多
管理Fragment的生命周期有点像管理Activity的生命周期,跟Activity一样,Fragment也存在三种状态:

恢复态:

这种状态下,Fragment显示在正在运行的Activity中。

暂停态:

这种状态下,另一个Activity在前台,并且有焦点,但这个Fragment所在的Activity依然是可见的(它前面的Activity是部分透明或没有完全覆盖它)。

终止态:

这种状态下,Fragment是不可见的,既可以是持有它的Activity已经被终止,也可以是Fragment从Activity中被删除,但被添加到了回退堆栈中。被终止的Fragment依然存活着(所有的状态和成员信息被系统保留着)。但是,对用户它不再可见,并且如果Activity被杀死,它也会被杀死。

跟Activity一样,你也能使用Bundle对象保留Fragment的状态,这样,在Activity的进程被杀死时,并且在Activity被重建时,你需要使用这个对象来恢复Fragment的状态。你能够在Fragment的onSaveInstanceState()回调执行期间保存状态,并且在onCreate(),onCreateView()回调或onActivityCreated()回调期间恢复状态。关于保存状态的更多信息,请看Activity文档。

Activity和Fragment之间在生命周期中最显著的不同是在各自的回退堆栈中它们是如何存储的。在Activity被终止时,默认情况下,Activity被放到了通过系统来管理的Activity的回退堆栈(因此用户能够使用回退按钮向后导航)。但是,在删除Fragment的事务期间,只有通过调用addToBackStack()方法明确的请求要保存Fragment实例时,它才被放到由持有Fragment的Activity管理的回退堆栈中。

否则,管理Fragment的生命周期与管理Activity的生命周期非常类似。因此,尽管你也需要理解Activity的生命是如何影响Fragment的生命的,但是在管理Activity生命周期(managing the activity lifecycle)文章中介绍的内容同样适用Fragment。

注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar

分享到:
评论

相关推荐

    android fragment生命周期测试

    在"android fragment生命周期测试"中,我们主要关注的是Fragment在不同情况下的状态变化及其对应的方法调用。 Fragment的生命周期包括以下几个关键阶段: 1. **添加/插入(Add/Attach)**:当Fragment通过`...

    android理解Fragment生命周期(字典)

    ### Android中的Fragment生命周期详解 在Android开发中,`Fragment`是一种可以嵌入到`Activity`中的用户界面片段,它可以被重用在多个活动中,并且能够独立管理自己的生命周期。理解`Fragment`的生命周期对于构建...

    Android Fragment的生命周期详解

    Fragment是Android应用开发中的一个重要组件,它允许在同一个Activity中包含多个可独立操作的界面单元。...如果你希望深入了解Fragment,可以参考我博客上的详细讲解,那里会有更多关于Fragment生命周期的实例和技巧。

    android fragment生命周期应用demo

    在处理Fragment的生命周期时,还需要注意以下几点: - 当Activity重新创建(例如,设备旋转)时,Fragment也会经历整个生命周期,因此需要在`onSaveInstanceState()`保存状态,并在`onActivityCreated(Bundle ...

    Android fragment生命周期一张图解

    Android fragment生命周期一张图解,一张图完全解释fragment的生命周期.看一遍就会

    Fragment生命周期演示Demo

    Fragment是Android应用开发中的一个重要组件,它允许在同一个Activity中包含多个可交互的视图和逻辑单元...通过实践和调试这个Demo,开发者可以加深对Fragment生命周期的理解,从而编写出更高效、更稳定的Android应用。

    Android开发-FragmentTransaction-Fragment增加隐藏显示-完整Demo-AndroidStuidio

    - Fragment有自己的生命周期,与Activity生命周期紧密关联。 - Fragment可以独立存在,也可以嵌入到Activity中。 2. **FragmentTransaction**: - FragmentTransaction是FragmentManager的一个接口,用于对...

    3.6Activity的生命周期以及Fragment-new - 副本

    总之,理解并熟练掌握Activity和Fragment的生命周期对于开发高效、稳定且用户友好的Android应用至关重要。在开发过程中,开发者需要根据各个生命周期方法的调用来适当地初始化、更新和清理资源,确保应用运行流畅,...

    Activity和Fragment生命周期研究

    在Android应用开发中,Activity和Fragment是两个至关重要的组件,它们构成了用户界面的主要部分,并各自拥有独特的生命周期。本文将深入探讨Activity和Fragment的生命周期,帮助开发者更好地理解和掌握这两个组件的...

    Android Fragment切换动画

    在Android中,我们可以使用`FragmentManager`和`FragmentTransaction`来管理Fragment的生命周期和状态。例如,使用`beginTransaction()`开始一个事务,然后调用`add()`, `replace()`, 或 `remove()`来执行相应的操作...

    Android-Androidfragment堆栈控制器

    "Android Fragment堆栈控制器"主要涉及到如何有效地管理Fragment的生命周期和导航状态,确保用户在应用程序中的操作流程得以正确记录和恢复。 在Android中,FragmentManager是管理Fragment的主要工具,它提供了添加...

    android-lifecycle, Android Activity/fragment 生命周期的图表.zip

    android-lifecycle, Android Activity/fragment 生命周期的图表 完整的Android fragment & Activity 生命周期尝试了解各种各样的片段之后,我做了一些研究并将完整的Android Activity/fragment 生命周期结合起来。...

    Android fragment切换动画.rar

    在Fragment的切换过程中,我们通常会使用`FragmentManager`和`FragmentTransaction`来管理Fragment的生命周期和状态变化。`FragmentTransaction`提供了`setCustomAnimation()`方法,允许我们设置进入和退出的动画...

    工厂模式下add replace show hide fragment 还有Activity fragment生命周期

    2. **Fragment生命周期**:Fragment的生命周期嵌套在Activity中,包括onAttach(), onCreate(), onCreateView(), onViewCreated(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), onDestroy(), ...

    Fragment生命周期讲解

    这是Fragment生命周期的起点,通常在这里进行初始化工作,例如获取Activity的引用。 2. **onCreate()**: 在这里,系统会为Fragment分配内存,并初始化基本成员变量。通常用于设置布局或创建数据对象,但不应在此处...

    android-fragment-viewtree:Android片段示例; 生命周期日志和视图树

    在"android-fragment-viewtree"项目中,很可能包含了对Fragment生命周期的详细日志记录,这有助于开发者理解和调试Fragment在不同状态下的行为。可能还会有针对ViewTree的分析,例如追踪View的创建、添加、删除过程...

    ToDoList - Fragment - 代码

    在这个项目中,开发者可能使用了Fragment生命周期方法,如`onCreateView()`、`onActivityCreated()`和`onDestroy()`来处理UI的创建、初始化和销毁。此外,他们可能使用了SQLite数据库或SharedPreferences来持久化待...

    Android Fragment实例

    - `AndroidFragment.zip`可能包含一个基础的Android Fragment项目,用于学习Fragment的基础用法和实践。 7. **Fragment在不同版本上的兼容性**: - 从Android 3.0(API级别11)开始引入Fragment,但通过Android ...

    Android中在xml中静态添加Fragment

    - 在使用`<fragment>`标签时,要考虑到Fragment的生命周期和Activity的生命周期是相互关联的,需要在适当的时候处理生命周期方法,如`onCreateView()`, `onStart()`, `onResume()`等。 四、实际应用 在实际项目中,...

    Android-Fragment的封装启动Fragment只需要调用startFragment(XXOOFragment.class);

    封装Fragment启动方法有助于减少重复代码,提高代码复用,同时也便于在项目中统一管理Fragment的生命周期和状态。 在提供的NoFragment-master压缩包中,可能包含了实现上述封装的源代码示例。通过查看和学习这些...

Global site tag (gtag.js) - Google Analytics