Fragment在开发中是可用以替代Activity的一种轻量级界面,它的生命周期如下图所示
与Activity对应的生命周期如下图所示
现要研究的是当Activity的生命周期变化会让Fragment的生命周期发生什么样的变化.
在activity的layout中放置一个fragment,让其在界面打开时自动加载,然后再放置一个framelayout用以动态加载fragment,观察两者的生命周期与Activity间关联。
布局如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.FragmentNormalActivity">
<fragment
android:id="@+id/fragment_title"
android:name="cn.pigdreams.blogdemo.fragment.TitleFragment"
android:layout_width="match_parent"
android:layout_height="94dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline4"
app:layout_constraintVertical_bias="1.0" />
<android.support.constraint.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
</android.support.constraint.ConstraintLayout>
1.首次打开界面时
09-04 21:34:48.396 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Activity:onCreate
09-04 21:34:48.608 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:Title->onAttach
09-04 21:34:48.609 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:Title->onCreate
09-04 21:34:48.617 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:Title->onCreateView
09-04 21:34:48.701 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:Title->onActivityCreated
09-04 21:34:48.740 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:null->onAttach
09-04 21:34:48.741 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:null->onCreate
09-04 21:34:48.743 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:示例1A->onCreateView
09-04 21:34:48.762 6975-6975/cn.pigdreams.blogdemo D/BLOG_DEMO: Fragment:示例1A->onActivityCreated
09-04 21:34:48.763 6975-6975/cn.pigdreams.blogdemo D/