官方文档中有详细的文字说明,不过最好还是实践下,熟悉过程。http://developer.android.com/guide/components/fragments.html
一、Activity的生命周期图:
二、Fragment生命周期图
三、对比图
四、测试代码:
- package com.goso.testapp;
- import android.app.Activity;
- import android.app.ListFragment;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- /**
- * Demonstration of using ListFragment to show a list of items
- * from a canned array.
- */
- public class FragmentListArray extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Log.e("HJJ", "Activity &&&& onCreate...");
- // Create the list fragment and add it as our sole content.
- if (getFragmentManager().findFragmentById(android.R.id.content) == null) {
- ArrayListFragment list = new ArrayListFragment();
- getFragmentManager().beginTransaction().add(android.R.id.content, list).commit();
- }
- }
- @Override
- protected void onStart() {
- // TODO Auto-generated method stub
- super.onStart();
- Log.e("HJJ", "Activity &&&& onStart...");
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- Log.e("HJJ", "Activity &&&& onResume...");
- }
- @Override
- protected void onStop() {
- // TODO Auto-generated method stub
- super.onStop();
- Log.e("HJJ", "Activity &&&& onStop...");
- }
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- super.onPause();
- Log.e("HJJ", "Activity &&&& onPause...");
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- Log.e("HJJ", "Activity &&&& onDestroy...");
- }
- public static class ArrayListFragment extends ListFragment {
- @Override
- public void onAttach(Activity activity) {
- // TODO Auto-generated method stub
- Log.e("HJJ", "ArrayListFragment **** onAttach...");
- super.onAttach(activity);
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- Log.e("HJJ", "ArrayListFragment **** onCreate...");
- super.onCreate(savedInstanceState);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- Log.e("HJJ", "ArrayListFragment **** onCreateView...");
- return super.onCreateView(inflater, container, savedInstanceState);
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- Log.e("HJJ", "ArrayListFragment **** onActivityCreated...");
- String[] array = new String[]{"C++", "JAVA", "PYTHON"};
- setListAdapter(new ArrayAdapter<String>(getActivity(),
- android.R.layout.simple_list_item_1, array));
- }
- @Override
- public void onStart() {
- // TODO Auto-generated method stub
- Log.e("HJJ", "ArrayListFragment **** onStart...");
- super.onStart();
- }
- @Override
- public void onResume() {
- Log.e("HJJ", "ArrayListFragment **** onResume...");
- // TODO Auto-generated method stub
- super.onResume();
- }
- @Override
- public void onPause() {
- Log.e("HJJ", "ArrayListFragment **** onPause...");
- // TODO Auto-generated method stub
- super.onPause();
- }
- @Override
- public void onStop() {
- Log.e("HJJ", "ArrayListFragment **** onStop...");
- // TODO Auto-generated method stub
- super.onStop();
- }
- @Override
- public void onDestroyView() {
- Log.e("HJJ", "ArrayListFragment **** onDestroyView...");
- // TODO Auto-generated method stub
- super.onDestroyView();
- }
- @Override
- public void onDestroy() {
- // TODO Auto-generated method stub
- Log.e("HJJ", "ArrayListFragment **** onDestroy...");
- super.onDestroy();
- }
- @Override
- public void onDetach() {
- Log.e("HJJ", "ArrayListFragment **** onDetach...");
- // TODO Auto-generated method stub
- super.onDetach();
- }
- @Override
- public void onListItemClick(ListView l, View v, int position, long id) {
- Log.i("FragmentList", "Item clicked: " + id);
- }
- }
- }
五、结果
- onCreate过程
- 01-22 15:30:28.091: E/HJJ(10315): Activity &&&& onCreate...
- 01-22 15:30:28.091: E/HJJ(10315): ArrayListFragment **** onAttach...
- 01-22 15:30:28.091: E/HJJ(10315): ArrayListFragment **** onCreate...
- 01-22 15:30:28.115: E/HJJ(10315): ArrayListFragment **** onCreateView...
- 01-22 15:30:28.123: E/HJJ(10315): ArrayListFragment **** onActivityCreated...
- onStart过程
- 01-22 15:30:28.123: E/HJJ(10315): Activity &&&& onStart...
- 01-22 15:30:28.123: E/HJJ(10315): ArrayListFragment **** onStart...
- onResume过程
- 01-22 15:30:28.123: E/HJJ(10315): Activity &&&& onResume...
- 01-22 15:30:28.123: E/HJJ(10315): ArrayListFragment **** onResume...
- onPause过程
- 01-22 15:31:26.748: E/HJJ(10315): ArrayListFragment **** onPause...
- 01-22 15:31:26.748: E/HJJ(10315): Activity &&&& onPause...
- onStop过程
- 01-22 15:31:27.638: E/HJJ(10315): ArrayListFragment **** onStop...
- 01-22 15:31:27.638: E/HJJ(10315): Activity &&&& onStop...
- onStart过程
- 01-22 15:31:57.537: E/HJJ(10315): Activity &&&& onStart...
- 01-22 15:31:57.537: E/HJJ(10315): ArrayListFragment **** onStart...
- onResume过程
- 01-22 15:31:57.537: E/HJJ(10315): Activity &&&& onResume...
- 01-22 15:31:57.537: E/HJJ(10315): ArrayListFragment **** onResume...
- onPause过程
- 01-22 15:32:47.412: E/HJJ(10315): ArrayListFragment **** onPause...
- 01-22 15:32:47.412: E/HJJ(10315): Activity &&&& onPause...
- onStop过程
- 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onStop...
- 01-22 15:32:47.865: E/HJJ(10315): Activity &&&& onStop...
- onDestroy过程
- 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onDestroyView...
- 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onDestroy...
- 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onDetach...
- 01-22 15:32:47.865: E/HJJ(10315): Activity &&&& onDestroy...
相关推荐
在"android fragment生命周期测试"中,我们主要关注的是Fragment在不同情况下的状态变化及其对应的方法调用。 Fragment的生命周期包括以下几个关键阶段: 1. **添加/插入(Add/Attach)**:当Fragment通过`...
Android fragment生命周期一张图解,一张图完全解释fragment的生命周期.看一遍就会
总之,理解和熟练掌握Fragment的生命周期对于开发Android应用至关重要,它能够帮助我们构建出更加高效、响应迅速且用户体验良好的应用。在实际开发中,要根据具体需求灵活运用,确保Fragment的正确管理和有效通信。
Fragment是Android应用开发中的一个重要组件,它允许在同一个Activity中包含多个可交互的视图和逻辑单元...通过实践和调试这个Demo,开发者可以加深对Fragment生命周期的理解,从而编写出更高效、更稳定的Android应用。
### Android中的Fragment生命周期详解 在Android开发中,`Fragment`是一种可以嵌入到`Activity`中的用户界面片段,它可以被重用在多个活动中,并且能够独立管理自己的生命周期。理解`Fragment`的生命周期对于构建...
Fragment是Android应用开发中的一个重要组件,它允许在同一个Activity中包含多个可独立操作的界面单元。...如果你希望深入了解Fragment,可以参考我博客上的详细讲解,那里会有更多关于Fragment生命周期的实例和技巧。
这是Fragment生命周期的起点,通常在这里进行初始化工作,例如获取Activity的引用。 2. **onCreate()**: 在这里,系统会为Fragment分配内存,并初始化基本成员变量。通常用于设置布局或创建数据对象,但不应在此处...
在Android应用开发中,Activity和Fragment是两个至关重要的组件,它们构成了用户界面的主要部分,并各自拥有独特的生命周期。本文将深入探讨Activity和Fragment的生命周期,帮助开发者更好地理解和掌握这两个组件的...
2. **Fragment生命周期**:Fragment的生命周期嵌套在Activity中,包括onAttach(), onCreate(), onCreateView(), onViewCreated(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), onDestroy(), ...
6. **销毁(Destroyed)**:最后,`onDestroy()`标志着Fragment生命周期的结束。 了解这些生命周期状态后,开发者可以通过打印日志来跟踪Activity和Fragment的状态变化。例如,在每个生命周期方法中插入`Log.d()`...
总的来说,理解和掌握Activity和Fragment的生命周期是Android开发的基础,它涉及到用户体验、性能优化和资源管理等多个方面。通过"LifecycleLog"这样的测试代码,开发者可以更好地理解生命周期机制,从而编写出更...
android-lifecycle, Android Activity/fragment 生命周期的图表 完整的Android fragment & Activity 生命周期尝试了解各种各样的片段之后,我做了一些研究并将完整的Android Activity/fragment 生命周期结合起来。...
Fragment生命周期的理解和熟练掌握对于高效、健壮的应用开发至关重要。在这个话题中,我们将深入探讨Fragment的生命周期以及如何实现动态切换。 Fragment的生命周期主要包括以下几个关键状态: 1. **创建过程**: ...
在深入探究Fragment生命周期之前,我们需要先理解Activity的基础生命周期,因为Fragment的生命周期与之紧密相关。 Activity的生命周期包括:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()...
fragment 代码示例
这是Fragment生命周期中最后的状态,用户可以与Fragment交互。 7. 当用户离开Fragment或系统需要回收资源时,将触发一系列的“恢复”方法,如`onPause()`、`onStop()`、`onDestroyView()`、`onDestroy()`和`...
总之,掌握Activity和Fragment的生命周期是Android开发者必备的基础技能。正确管理它们的生命周期可以避免内存泄漏,提高应用性能,并确保用户在各个界面之间的流畅切换。在实际开发中,我们需要根据需求灵活运用...
在深入探讨Fragment生命周期之前,我们需要先理解其在Android应用程序中的地位和作用。 Fragment的引入是为了应对大屏幕设备,如平板电脑,但随着Android应用复杂性的增加,它在手机应用中也变得越来越常见。...
Fragment是Android应用开发中的一个重要...总之,熟练掌握Fragment的生命周期及其与Activity的交互方式,是提升Android开发能力的关键步骤。在实际项目中,灵活运用这些知识点,可以使代码结构更清晰,应用运行更稳定。