Fragment 整个生命周期演示
来源:互联网 发布:php rsasig 编辑:程序博客网 时间:2024/05/22 17:49
序号
方法名称
描述
1
public void onInflate(Activity activity, AttributeSet attrs,BundlesavedInstanceState)
在Activity.onCreate方法之前调用,可以获取除了View之外的资源
2
public void onAttach(Activity activity)
当fragment第一次与Activity产生关联时就会调用,以后不再调用
3
public void onCreate(Bundle savedInstanceState)
在onAttach执行完后会立刻调用此方法,通常被用于读取保存的状态值,获取或者初始化一些数据,但是该方法不执行,窗口是不会显示的,因此如果获取的数据需要访问网络,最好新开线程。
4
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
作用:创建Fragment中显示的view,其中inflater用来装载布局文件,container表示<fragment>标签的父标签对应的ViewGroup对象,savedInstanceState可以获取Fragment保存的状态
5
public void onViewCreated(View view, Bundle savedInstanceState)
继上面后就会调用此方法
6
public void onActivityCreated(Bundle savedInstanceState)
在Activity.onCreate方法调用后会立刻调用此方法,表示窗口已经初始化完毕,此时可以调用控件了
7
public void onStart()
开始执行与控件相关的逻辑代码,如按键点击
8
public void onResume()
这是Fragment从创建到显示的最后一个回调的方法
9
public void onPause()
当发生界面跳转时,临时暂停,暂停时间是500ms,0.5s后直接进入下面的onStop方法
10
public void onStop()
当该方法返回时,Fragment将从屏幕上消失
11
public void onDestroyView()
当fragment状态被保存,或者从回退栈弹出,该方法被调用
12
public void onDestroy()
当Fragment不再被使用时,如按返回键,就会调用此方法
13
public void onDetach()
Fragment生命周期的最后一个方法,执行完后将不再与Activity关联,将释放所有fragment对象和资源
下面进行一个demo来观察fragment生命周期,
(1)从启动到显示整个界面:
点击跳转到第二个Actvity时的情况——
可以看到,依次调用onPause() 和 onStop()方法;观察其时间,可以发现就是相差500ms ;
当再次返回到这两个fragment时
当点击返回键,直接回到主界面时,可以看到fragment销毁并退出了
至此,Fragment的生命周期一览无余。
代码如下:
- public class MyFragment1 extends Fragment
- {
- private Button button1;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onCreateView");
- View view = inflater.inflate(R.layout.my_fragment1, null);
- Log.d("Fragment1_onCreateView_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- Log.d("Fragment1_onCreateView_view_edittext1",
- String.valueOf(view.findViewById(R.id.edittext1)));
- button1 = (Button)view.findViewById(R.id.button1);
- button1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(getActivity(), MainActivity.class);
- startActivity(intent);
- }
- });
- return view;
- }
- @Override
- public void onInflate(Activity activity, AttributeSet attrs,
- Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onInflate");
- Log.d("Fragment1_onInflate_activity_stringResource", activity
- .getResources().getString(R.string.app_name));
- Log.d("Fragment1_onInflate_class",
- attrs.getAttributeValue(null, "class"));
- Log.d("Fragment1_onInflate_getActivity", String.valueOf(getActivity()));
- Log.d("Fragment1_onInflate_activity_edittext1",
- String.valueOf(activity.findViewById(R.id.edittext1)));
- Log.d("Fragment1_onInflate_savedInstanceState",
- String.valueOf(savedInstanceState));
- super.onInflate(activity, attrs, savedInstanceState);
- }
- @Override
- public void onAttach(Activity activity)
- {
- Log.d("Fragment1", "onAttach");
- Log.d("Fragment1_onAttach_activity_edittext1",
- String.valueOf(activity.findViewById(R.id.edittext1)));
- Log.d("Fragment1_onAttach_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- super.onAttach(activity);
- }
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onCreate");
- Log.d("Fragment1_onCreate_getActivity", String.valueOf(getActivity()));
- super.onCreate(savedInstanceState);
- }
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onViewCreated");
- Log.d("Fragment1_onViewCreated_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- Log.d("Fragment1_onViewCreated_view_edittext1",
- String.valueOf(view.findViewById(R.id.edittext1)));
- super.onViewCreated(view, savedInstanceState);
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onActivityCreated");
- Log.d("Fragment1_onActivityCreated_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- super.onActivityCreated(savedInstanceState);
- }
- @Override
- public void onStart()
- {
- Log.d("Fragment1", "onStart");
- super.onStart();
- }
- @Override
- public void onResume()
- {
- Log.d("Fragment1", "onResume");
- super.onResume();
- }
- @Override
- public void onPause()
- {
- Log.d("Fragment1", System.currentTimeMillis()+"onPause");
- super.onPause();
- }
- @Override
- public void onStop()
- {
- Log.d("Fragment1", System.currentTimeMillis()+"onStop");
- super.onStop();
- }
- @Override
- public void onDestroyView()
- {
- Log.d("Fragment1", "onDestroyView");
- super.onDestroyView();
- }
- @Override
- public void onDestroy()
- {
- Log.d("Fragment1", System.currentTimeMillis()+"onDestroy");
- super.onDestroy();
- }
- @Override
- public void onDetach()
- {
- Log.d("Fragment1", "onDetach");
- super.onDetach();
- }
- }
- public class MyFragment1 extends Fragment
- {
- private Button button1;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onCreateView");
- View view = inflater.inflate(R.layout.my_fragment1, null);
- Log.d("Fragment1_onCreateView_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- Log.d("Fragment1_onCreateView_view_edittext1",
- String.valueOf(view.findViewById(R.id.edittext1)));
- button1 = (Button)view.findViewById(R.id.button1);
- button1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(getActivity(), MainActivity.class);
- startActivity(intent);
- }
- });
- return view;
- }
- @Override
- public void onInflate(Activity activity, AttributeSet attrs,
- Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onInflate");
- Log.d("Fragment1_onInflate_activity_stringResource", activity
- .getResources().getString(R.string.app_name));
- Log.d("Fragment1_onInflate_class",
- attrs.getAttributeValue(null, "class"));
- Log.d("Fragment1_onInflate_getActivity", String.valueOf(getActivity()));
- Log.d("Fragment1_onInflate_activity_edittext1",
- String.valueOf(activity.findViewById(R.id.edittext1)));
- Log.d("Fragment1_onInflate_savedInstanceState",
- String.valueOf(savedInstanceState));
- super.onInflate(activity, attrs, savedInstanceState);
- }
- @Override
- public void onAttach(Activity activity)
- {
- Log.d("Fragment1", "onAttach");
- Log.d("Fragment1_onAttach_activity_edittext1",
- String.valueOf(activity.findViewById(R.id.edittext1)));
- Log.d("Fragment1_onAttach_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- super.onAttach(activity);
- }
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onCreate");
- Log.d("Fragment1_onCreate_getActivity", String.valueOf(getActivity()));
- super.onCreate(savedInstanceState);
- }
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onViewCreated");
- Log.d("Fragment1_onViewCreated_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- Log.d("Fragment1_onViewCreated_view_edittext1",
- String.valueOf(view.findViewById(R.id.edittext1)));
- super.onViewCreated(view, savedInstanceState);
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState)
- {
- Log.d("Fragment1", "onActivityCreated");
- Log.d("Fragment1_onActivityCreated_getActivity_edittext1",
- String.valueOf(getActivity().findViewById(R.id.edittext1)));
- super.onActivityCreated(savedInstanceState);
- }
- @Override
- public void onStart()
- {
- Log.d("Fragment1", "onStart");
- super.onStart();
- }
- @Override
- public void onResume()
- {
- Log.d("Fragment1", "onResume");
- super.onResume();
- }
- @Override
- public void onPause()
- {
- Log.d("Fragment1", System.currentTimeMillis()+"onPause");
- super.onPause();
- }
- @Override
- public void onStop()
- {
- Log.d("Fragment1", System.currentTimeMillis()+"onStop");
- super.onStop();
- }
- @Override
- public void onDestroyView()
- {
- Log.d("Fragment1", "onDestroyView");
- super.onDestroyView();
- }
- @Override
- public void onDestroy()
- {
- Log.d("Fragment1", System.currentTimeMillis()+"onDestroy");
- super.onDestroy();
- }
- @Override
- public void onDetach()
- {
- Log.d("Fragment1", "onDetach");
- super.onDetach();
- }
- }
演示Demo 下载
使用Fragmen的好处就是可以把业务逻辑和UI封装在一起,与外部关联系不大,其他程序也可以用该组件,从而实现复用最大化。
- Fragment 整个生命周期演示
- Fragment 整个生命周期演示
- Fragment页面之间传值、基本例子演示、生命周期、兼容性
- fragment 生命周期
- Fragment生命周期
- Fragment 生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- fragment 生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- fragment 生命周期
- Fragment生命周期
- Fragment 生命周期
- Fragment生命周期
- Sublime text 2不支持raw_input输入的问题
- ArcGIS API for JavaScript加载天地图
- 2016 ICPC China Final 总结
- Java Web开发过程用各种代码的注释
- JavaScript加密解密
- Fragment 整个生命周期演示
- 【算法】今日头条2017编程题
- 简述诱导排序(induce sort)
- 【IOS沉思录】开发软硬件SDK支持以及Swift语言
- Android漂亮的对话框项目sweet-alert-dialog
- Servlet之基础、开发步骤、调用过程及常见错误
- 文件操作工具类FileUtils
- 电脑创建热点
- 1071.新年趣事之打牌