Fragment的生命周期初识

正在翻译 fragment的官方文档,对比这篇文章我更清楚的知道fragment的生命周期流程,所以厚颜转载

原文位于红黑联盟:http://www.2cto.com/kf/201204/125790.html

    1.创建一个Fragment的子类:Fragment1.java。

package net.horsttnann.Fragments; 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 Fragment1 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.d("Fragment 1", "onCreateView"); // ---Inflate the layout for this fragment--- return inflater.inflate(R.layout.fragment1, container, false); } @Override public void onAttach(Activity activity) { super.onAttach(activity); Log.d("Fragment 1", "onAttach"); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("Fragment 1", "onCreate"); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d("Fragment 1", "onActivityCreated"); } @Override public void onStart() { super.onStart(); Log.d("Fragment 1", "onStart"); } @Override public void onResume() { super.onResume(); Log.d("Fragment 1", "onResume"); } @Override public void onPause() { super.onPause(); Log.d("Fragment 1", "onPause"); } @Override public void onStop() { super.onStop(); Log.d("Fragment 1", "onStop"); } @Override public void onDestroyView() { super.onDestroyView(); Log.d("Fragment 1", "onDestroyView"); } @Override public void onDestroy() { super.onDestroy(); Log.d("Fragment 1", "onDestroy"); } @Override public void onDetach() { super.onDetach(); Log.d("Fragment 1", "onDetach"); } }



   2.按Ctrl+F11,将模拟器转换成“横屏模式”。

    3.按F11调试。


    4.当应用被加载的时候,LogCat窗口中有如下显示。


[plain] 03-27 12:23:32.255: D/Fragment 1(704): onAttach 
03-27 12:23:32.255: D/Fragment 1(704): onCreate 
03-27 12:23:32.255: D/Fragment 1(704): onCreateView 
03-27 12:23:32.274: D/Fragment 1(704): onActivityCreated 
03-27 12:23:32.274: D/Fragment 1(704): onStart 
03-27 12:23:32.286: D/Fragment 1(704): onResume 
03-27 12:23:32.255: D/Fragment 1(704): onAttach
03-27 12:23:32.255: D/Fragment 1(704): onCreate
03-27 12:23:32.255: D/Fragment 1(704): onCreateView
03-27 12:23:32.274: D/Fragment 1(704): onActivityCreated
03-27 12:23:32.274: D/Fragment 1(704): onStart
03-27 12:23:32.286: D/Fragment 1(704): onResume
    5.按Home键,LogCat窗口中有如下显示。


[plain] 03-27 12:25:23.174: D/Fragment 1(704): onPause 
03-27 12:25:25.174: D/Fragment 1(704): onStop 
03-27 12:25:23.174: D/Fragment 1(704): onPause
03-27 12:25:25.174: D/Fragment 1(704): onStop
    6.按Home键不放,重新进入应用,LogCat窗口中有如下显示。


[plain] 03-27 12:26:21.505: D/Fragment 1(704): onStart 
03-27 12:26:21.505: D/Fragment 1(704): onResume 
03-27 12:26:21.505: D/Fragment 1(704): onStart
03-27 12:26:21.505: D/Fragment 1(704): onResume
    7.按返回键,LogCat窗口中有如下显示。


[plain] 03-27 12:27:54.384: D/Fragment 1(704): onPause 
03-27 12:27:55.324: D/Fragment 1(704): onStop 
03-27 12:27:55.324: D/Fragment 1(704): onDestroyView 
03-27 12:27:55.324: D/Fragment 1(704): onDestroy 
03-27 12:27:55.324: D/Fragment 1(704): onDetach 
03-27 12:27:54.384: D/Fragment 1(704): onPause
03-27 12:27:55.324: D/Fragment 1(704): onStop
03-27 12:27:55.324: D/Fragment 1(704): onDestroyView
03-27 12:27:55.324: D/Fragment 1(704): onDestroy
03-27 12:27:55.324: D/Fragment 1(704): onDetach

解析:

    1.当一个fragment被创建的时候,它会经历以下状态.。

onAttach()
onCreate()
onCreateView()
onActivityCreated()
    2.当这个fragment对用户可见的时候,它会经历以下状态。

onStart()
onResume()
    3.当这个fragment进入“后台模式”的时候,它会经历以下状态。

onPause()
onStop()
    4.当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。

onPause()
onStop()
onDestroyView()
onDetach()
    5.就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。

onCreate()
onCreateView()
onActivityCreated()
     6.fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。


onAttached() —— 当fragment和activity关联之后,调用这个方法。
onCreateView() —— 创建fragment中的视图的时候,调用这个方法。
onActivityCreated() —— 当activity的onCreate()方法被返回之后,调用这个方法。
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。

摘自   horsttnann的专栏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值