一、碎片的状态和

1.运行状态

当一个碎片是可见的,并且她所关联的活动正处于运行状态,该碎片就是运行​状态。

2.暂停状态

当一个活动那个进入暂停状态(由于另一个未占满屏幕的活动被添加到栈顶),与它相关联的​可见碎片进入到暂停状态。

3.停止状态

当一个活动进入到停止状态的时候,与它相关联的碎片就会进入到停止状态。或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但有在事务提交之前调用addToBackStack()方法,这时的碎片也就会进入到停止状态。总的来说,进入到停止状态的碎片对于用户来说是完全不可见的,有可能会被​系统回收。

4.销毁状态

碎片总是依附于活动而存在的,因此当活动被销毁的时候,与它相关联的碎片就会进入到销毁状态​。或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但有在事务提交之前并没有调用addToBackStack()方法,这时的碎片也就会进入到停止状态。

二、额外的回调方法

1.toAttach()

当活动与碎片建立关联的时候进行调用

2.onCreateView()

为碎片创建视图(加载布局)时调用

3.onActivityCreated()

确保与碎片相关的试图被移除的时候进行调用

4.onDestroyView()

当与碎片关联的视图被移除的时候进行调用​。

5.onDetach()

当碎片与活动解除关联的时候调用

碎片的完整生命周期图例

 

package com.example.fragmenttest;

import android.app.Activity;

import android.app.Fragment;

import android.os.Bundle;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

​

public class RightFragment extends Fragment {

  public static final String TAG = "RightFragment";

 

  @Override

  public void onAttach(Activity activity) {

    super.onAttach(activity);

    Log.d(TAG,"onAttach");

  }

 

  @Override

  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    Log.d(TAG,"onCreate");

  }

 

  @Override

  public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

    Log.d(TAG,"onCreateView");

    View view = inflater.inflate(R.layout.right_fragment,container,false);

    return view;

   

  }

 

  @Override

  public void onActivityCreated(Bundle savedInstanceState) {

    super.onActivityCreated(savedInstanceState);

    Log.d(TAG,"onActivity");

  }

 

  @Override

  public void onStart() {

    super.onStart();

    Log.d(TAG,"onStart");

   

  }

 

  @Override

  public void onResume() {

    super.onResume();

    Log.d(TAG,"onResume");

  }

 

  @Override

  public void onPause() {

    super.onPause();

    Log.d(TAG,"onPause");

   

  }

 

  @Override

  public void onStop() {

    super.onStop();

    Log.d(TAG,"onStop");

  }

 

  @Override

  public void onDestroy() {

    super.onDestroy();

    Log.d(TAG,"onDestroy");

​

  }

 

  @Override

  public void onDetach() {

    super.onDetach();

    Log.d(TAG,"onDetach");

  }

 

}

 

三、源码:

1.项目地址

https://github.com/ruigege66/Android/tree/master/FragmentTest​

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

 

posted on 2020-05-09 00:21  心悦君兮君不知-睿  阅读(315)  评论(0编辑  收藏  举报