Activity和Fragment生命周期之间的关系
来源:互联网 发布:图片去码软件 编辑:程序博客网 时间:2024/04/30 12:54
第一个Activity的布局
/** * MainActivity布局xml文件 */<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/button" android:text="开启第二个Activity" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#339999"> </LinearLayout></LinearLayout>
第二个Activity的布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.fragment.SecondActivity" android:orientation="vertical"> <Button android:id="@+id/button_finish" android:text="finish" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#339999"> </LinearLayout></LinearLayout>
----------------------------------------------------------------------------------------------------------------------
接下来是第一个Activity中的代码
public class MainActivity extends AppCompatActivity { private static final String LOG_TAG ="MainActivity"; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.w(LOG_TAG, "==============onCreate()"); FirstFragment firstFragment = new FirstFragment(); android.support.v4.app.FragmentManager supportFragmentManager = getSupportFragmentManager(); android.support.v4.app.FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); fragmentTransaction.add(R.id.linearlayout,firstFragment,"firstFragment"); fragmentTransaction.commit(); mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.w(LOG_TAG, "------------------mButton onClick-------------------"); startActivity(new Intent(MainActivity.this, SecondActivity.class)); } }); } @Override protected void onStart() { super.onStart(); Log.w(LOG_TAG, "==============onStart()"); } @Override protected void onRestart() { super.onRestart(); Log.w(LOG_TAG, "==============onRestart()"); } @Override protected void onResume() { super.onResume(); Log.w(LOG_TAG, "==============onResume()"); } @Override protected void onPause() { super.onPause(); Log.w(LOG_TAG, "==============onPause()"); } @Override protected void onStop() { super.onStop(); Log.w(LOG_TAG, "==============onStop()"); } @Override protected void onDestroy() { super.onDestroy(); Log.w(LOG_TAG, "==============onDestroy()"); }}
第二个Activity里面的代码
public class SecondActivity extends AppCompatActivity { private static final String LOG_TAG ="SecondActivity"; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Log.w(LOG_TAG, "==============onCreate()"); SecondFragment secondFragment = new SecondFragment(); android.support.v4.app.FragmentManager supportFragmentManager = getSupportFragmentManager(); android.support.v4.app.FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); fragmentTransaction.add(R.id.linearlayout,secondFragment,"secondFragment"); fragmentTransaction.commit(); mButton = (Button) findViewById(R.id.button_finish); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.w(LOG_TAG, "------------------mButton onClick-------------------"); finish(); } }); } @Override protected void onStart() { super.onStart(); Log.w(LOG_TAG, "==============onStart()"); } @Override protected void onRestart() { super.onRestart(); Log.w(LOG_TAG, "==============onRestart()"); } @Override protected void onResume() { super.onResume(); Log.w(LOG_TAG, "==============onResume()"); } @Override protected void onPause() { super.onPause(); Log.w(LOG_TAG, "==============onPause()"); } @Override protected void onStop() { super.onStop(); Log.w(LOG_TAG, "==============onStop()"); } @Override protected void onDestroy() { super.onDestroy(); Log.w(LOG_TAG, "==============onDestroy()"); }}---------------------------------------------------------------------------------------
接下来是第一个Fragment里面的代码
public class FirstFragment extends Fragment { private static final String LOG_TAG = "FirstFragment"; private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private String mParam1; private String mParam2; public FirstFragment() { } @Override public void onAttach(Activity activity) { super.onAttach(activity); Log.w(LOG_TAG, "onAttach..."); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.w(LOG_TAG, "onCreate..."); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.w(LOG_TAG, "onCreateView..."); return inflater.inflate(R.layout.fm_item, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.w(LOG_TAG, "onActivityCreated..."); } @Override public void onStart() { super.onStart(); Log.w(LOG_TAG, "onStart..."); } @Override public void onResume() { super.onResume(); Log.w(LOG_TAG, "onResume..."); } @Override public void onPause() { super.onPause(); Log.w(LOG_TAG, "onPause..."); } @Override public void onStop() { super.onStop(); Log.w(LOG_TAG, "onStop..."); } @Override public void onDestroyView() { super.onDestroyView(); Log.w(LOG_TAG, "onDestroyView..."); } @Override public void onDestroy() { super.onDestroy(); Log.w(LOG_TAG, "onDestroy..."); } @Override public void onDetach() { super.onDetach(); Log.w(LOG_TAG, "onDetach..."); }}最后是第二个Fragment里面的代码
public class SecondFragment extends Fragment { private static final String LOG_TAG = "SecondFragment"; private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private String mParam1; private String mParam2; public SecondFragment() { } @Override public void onAttach(Activity activity) { super.onAttach(activity); Log.w(LOG_TAG, "onAttach..."); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.w(LOG_TAG, "onCreate..."); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.w(LOG_TAG, "onCreateView..."); return inflater.inflate(R.layout.fm_item, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.w(LOG_TAG, "onActivityCreated..."); } @Override public void onStart() { super.onStart(); Log.w(LOG_TAG, "onStart..."); } @Override public void onResume() { super.onResume(); Log.w(LOG_TAG, "onResume..."); } @Override public void onPause() { super.onPause(); Log.w(LOG_TAG, "onPause..."); } @Override public void onStop() { super.onStop(); Log.w(LOG_TAG, "onStop..."); } @Override public void onDestroyView() { super.onDestroyView(); Log.w(LOG_TAG, "onDestroyView..."); } @Override public void onDestroy() { super.onDestroy(); Log.w(LOG_TAG, "onDestroy..."); } @Override public void onDetach() { super.onDetach(); Log.w(LOG_TAG, "onDetach..."); } }-------------------------------------------------------------------------------------------
最后是运行结果:
1、第一次打开以后:1.com.example.kuguan.anlearning W/MainActivity﹕ ==============onCreate()2.com.example.kuguan.anlearning W/FirstFragment﹕ onAttach...3.com.example.kuguan.anlearning W/FirstFragment﹕ onCreate...4.com.example.kuguan.anlearning W/FirstFragment﹕ onCreateView...5.com.example.kuguan.anlearning W/FirstFragment﹕ onActivityCreated...6.com.example.kuguan.anlearning W/MainActivity﹕ ==============onStart()7.com.example.kuguan.anlearning W/FirstFragment﹕ onStart...8.com.example.kuguan.anlearning W/MainActivity﹕ ==============onResume()9.com.example.kuguan.anlearning W/FirstFragment﹕ onResume... 2、点击MainActivity中的按钮“打开第二个Activity”以后:1.com.example.kuguan.anlearning W/MainActivity﹕ ----------------mButton onClick-----------------2.com.example.kuguan.anlearning W/FirstFragment﹕ onPause...3.com.example.kuguan.anlearning W/MainActivity﹕ ==============onPause()4.com.example.kuguan.anlearning W/SecondFragment﹕ onAttach...5.com.example.kuguan.anlearning W/SecondFragment﹕ onCreate...6.com.example.kuguan.anlearning W/SecondFragment﹕ onCreateView...7.com.example.kuguan.anlearning W/SecondFragment﹕ onActivityCreated...8.com.example.kuguan.anlearning W/SecondActivity﹕ ==============onStart()9.com.example.kuguan.anlearning W/SecondFragment﹕ onStart...10.com.example.kuguan.anlearning W/SecondActivity﹕ ==============onResume()11.com.example.kuguan.anlearning W/SecondFragment﹕ onResume...12.com.example.kuguan.anlearning W/FirstFragment﹕ onStop...13.com.example.kuguan.anlearning W/MainActivity﹕ ==============onStop()3、点击SecondActivity的按钮“finish”之后:1.com.example.kuguan.anlearning W/SecondActivity﹕ -----------------mButton onClick------------------2.com.example.kuguan.anlearning W/SecondFragment﹕ onPause...3.com.example.kuguan.anlearning W/SecondActivity﹕ ==============onPause()4.com.example.kuguan.anlearning W/MainActivity﹕ ==============onRestart()5.com.example.kuguan.anlearning W/MainActivity﹕ ==============onStart()6.com.example.kuguan.anlearning W/FirstFragment﹕ onStart...7.com.example.kuguan.anlearning W/MainActivity﹕ ==============onResume()8.com.example.kuguan.anlearning W/FirstFragment﹕ onResume...9.com.example.kuguan.anlearning W/SecondFragment﹕ onStop...10.com.example.kuguan.anlearning W/SecondActivity﹕ ==============onStop()11.com.example.kuguan.anlearning W/SecondFragment﹕ onDestroyView...12.com.example.kuguan.anlearning W/SecondFragment﹕ onDestroy...13.com.example.kuguan.anlearning W/SecondFragment﹕ onDetach...14.com.example.kuguan.anlearning W/SecondActivity﹕ ==============onDestroy()4、点击back键使MainActivity退到后台:1.com.example.kuguan.anlearning W/FirstFragment﹕ onPause...2.com.example.kuguan.anlearning W/MainActivity﹕ ==============onPause()3.com.example.kuguan.anlearning W/FirstFragment﹕ onStop...4.com.example.kuguan.anlearning W/MainActivity﹕ ==============onStop()5.com.example.kuguan.anlearning W/FirstFragment﹕ onDestroyView...6.com.example.kuguan.anlearning W/FirstFragment﹕ onDestroy...7.com.example.kuguan.anlearning W/FirstFragment﹕ onDetach...8.com.example.kuguan.anlearning W/MainActivity﹕ ==============onDestroy()5、在MianActivity显示的时候,按HOME键:1.com.example.kuguan.anlearning W/FirstFragment﹕ onPause...2.com.example.kuguan.anlearning W/MainActivity﹕ ==============onPause()3.com.example.kuguan.anlearning W/FirstFragment﹕ onStop...4.com.example.kuguan.anlearning W/MainActivity﹕ ==============onStop()6、然后再点击Icon打开:1.com.example.kuguan.anlearning W/MainActivity﹕ ==============onRestart()2.com.example.kuguan.anlearning W/MainActivity﹕ ==============onStart()3.com.example.kuguan.anlearning W/FirstFragment﹕ onStart...4.com.example.kuguan.anlearning W/MainActivity﹕ ==============onResume()5.com.example.kuguan.anlearning W/FirstFragment﹕ onResume...
1 0
- Activity和Fragment生命周期之间的关系
- Fragment和Activity的生命周期的关系
- Fragment和Activity生命周期的关系
- Fragment和Activity的生命周期关系
- Activity与Fragment生命周期及之间的关系
- 一句话、一张图记住Activity和Fragment之间错综复杂的生命周期关系
- Fragment的生命周期和activity的关系图
- 关于Activity和Fragment生命周期关系
- fragment的生命周期与activity的关系
- Fragment生命周期及其与activity的关系
- Fragment生命周期及其与activity的关系
- Activity与Fragment之间的生命周期方法
- Fragment和Activity的生命周期
- Fragment和Activity的生命周期
- Activity和Fragment的生命周期
- Activity和Fragment的生命周期
- activity和fragment的生命周期
- Activity和Fragment的生命周期
- Jquery Datatables 1.10兼容1.9 的错误解决
- mvp
- Netfilter CONNMARK用法及分析(二)-- 内核代码分析
- Python入门——列表生成器基础
- linux-时间编程
- Activity和Fragment生命周期之间的关系
- #467 – 使用UniformGrid 均分行和列(Use a UniformGrid for Evenly Spaced Rows and Columns)
- React Native 学习笔记(一)--init 项目 和 运行项目
- 润乾报表中常用的测试环境JSP(上)
- android集成环信遇到的一些问题记录一下方面以后查阅
- Android 带清除功能的输入框控件EditTextWithDel
- iOS 的 XMPPFramework 简介
- poj2449 第k短路....A*+最短路
- 开发移动APP