zoukankan      html  css  js  c++  java
  • fragment的生命周期及其各个周期方法的作用

    先上生命周期图:

    Fragment的生命周期图:

          

    与Activity的生命周期对比图:

    由于Fragment是嵌在Activity中使用的,故其生命周期也是依赖于Activity的周期的,或者说Fragment的生命周期小于Activity的生命周期。

    从上图的生命周期中也可以看出Fragment主要运行在Activity的onResume()与onPause()之间。一旦activity进入resumed状态(也就是running状态),就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。

    下面来看看每一个生命周期的作用:

     1 import android.app.Activity;
     2 import android.app.Fragment;
     3 import android.os.Bundle;
     4 import android.util.Log;
     5 import android.view.LayoutInflater;
     6 import android.view.View;
     7 import android.view.ViewGroup;
     8 
     9 
    10 public class MyFragment2 extends Fragment{
    11 
    12     @Override //fragment和activity建立关联时调用
    13     public void onAttach(Activity activity) {
    14         super.onAttach(activity);
    15     }
    16     
    17     //当创建 fragment 时系统调用此方法。在其中初始化 fragment 的基础组件。可参考 activity 的说明。
    18     @Override
    19     public void onCreate(Bundle savedInstanceState) {
    20         super.onCreate(savedInstanceState);
    21     }
    22     
    23     
    24     @Override 
    25     //当fragment加载布局文件时调用。 即fragment要画自己的界面时调用(在真正显示之前)此方法。
    26     //这个方法返回 frament 的 layout 的根控件。如果这个 fragment 不提供界面,那它应返回 null。
    27     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    28         View view=inflater.inflate(R.layout.fragface2,container,false);
    29         return view;
    30     }
    31     
    32     @Override //当activity的oncreate执行后调用
    33     public void onActivityCreated(Bundle savedInstanceState) {
    34         super.onActivityCreated(savedInstanceState);
    35     }
    36 
    37     @Override//与Activity的一样,此时可以看到Fragment的界面,但还不能交互
    38     public void onStart() {
    39         super.onStart();
    40     }
    41 
    42     @Override//与用户交互
    43         public void onResume() {
    44             super.onResume();
    45         }
    46 
    47     @Override//可见不可交互
    48     public void onPause() {
    49         super.onPause();
    50     }
    51     
    52     @Override//不可见,fragment进入后台模式
    53     public void onStop() {
    54         super.onPause();
    55     }
    56     
    57     @Override// 当fragment中的视图被移除的时候,调用这个方法。
    58     public void onDestroyView() {
    59         super.onDestroyView();
    60     }
    61         
    62     @Override//Fragment被销毁的时候
    63     public void onDestroy() {
    64         super.onDestroy();
    65 
    66     }
    67 
    68     @Override //解除与Activity关联时调用
    69     public void onDetach() {
    70         super.onDetach();
    71     }
    72 
    73     @Override
    74     public void onStop() {
    75         
    76         Log.e("robin debug", "fragment onStop...2");
    77         super.onStop();
    78     }
    79     
    80 }

    fragment的基本使用步骤详看 http://www.cnblogs.com/huaqing-wkc/p/4926288.html

  • 相关阅读:
    文件的复制
    反射基础知识
    蓝牙连接 返回的命令
    WebRoot 与 webContent的区别
    时间判断
    java ecplise配置
    异常org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 11; 注释中不允许出现字符串 "--"。的原因
    F、CSL 的神奇序列 【规律】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
    E、CSL 的魔法 【模拟】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
    D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
  • 原文地址:https://www.cnblogs.com/huaqing-wkc/p/4929599.html
Copyright © 2011-2022 走看看