比较Activity与Fragment的生命周期

来源:互联网 发布:单片机温度报警器程序 编辑:程序博客网 时间:2024/06/13 18:13

前言:熟练掌握Activity与Fragment的生命周期非常重要,简单给大家整整
一、Activity 生命周期
Activity生命周期
二、Fragment 生命周期
Fragment生命周期
三、Activity与Fragment生命周期对比图
对比图
四、代码测试
下面是MainActivity的代码:

import android.app.Activity;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity {    private static final String TAG = "Activity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        if (getFragmentManager().findFragmentById(android.R.id.content) == null){            MyFragment myFragment = new MyFragment();            getFragmentManager().beginTransaction().add(android.R.id.content,myFragment).commit();        }        Log.e(TAG, "onCreate...");    }    @Override    protected void onStart() {        super.onStart();        Log.e(TAG, "onStart...");    }    @Override    protected void onRestart() {        super.onRestart();        Log.e(TAG, "onRestart...");    }    @Override    protected void onResume() {        super.onResume();        Log.e(TAG, "onResume...");    }    @Override    protected void onPause() {        super.onPause();        Log.e(TAG, "onPause...");    }    @Override    protected void onStop() {        super.onStop();        Log.e(TAG, "onStop...");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.e(TAG, "onDestroy...");    }}

下面是Fragment的代码:

import android.app.Fragment;import android.content.Context;import android.os.Bundle;import android.support.annotation.Nullable;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/** * Created by kb on 2017/7/11. * 滴水穿石,铁杵成针 */public class MyFragment extends Fragment{    private static final String TAG = "Fragment";    @Override    public void onAttach(Context context) {        super.onAttach(context);        Log.e(TAG, "onAttach***");    }    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.e(TAG, "onCreate***");    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        Log.e(TAG, "onCreateView***");        return inflater.inflate(R.layout.fragment_my,container,false);    }    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        Log.e(TAG, "onActivityCreated***");    }    @Override    public void onStart() {        super.onStart();        Log.e(TAG, "onStart***");    }    @Override    public void onResume() {        super.onResume();        Log.e(TAG, "onResume***");    }    @Override    public void onPause() {        super.onPause();        Log.e(TAG, "onPause***");    }    @Override    public void onStop() {        super.onStop();        Log.e(TAG, "onStop***");    }    @Override    public void onDestroy() {        super.onDestroy();        Log.e(TAG, "onDestroy***");    }    @Override    public void onDetach() {        super.onDetach();        Log.e(TAG, "onDetach***");    }    @Override    public void onDestroyView() {        super.onDestroyView();        Log.e(TAG, "onDestroyView***");    }}

五、测试结果

07-11 11:37:20.402 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onCreate...07-11 11:37:20.404 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onAttach***07-11 11:37:20.404 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onCreate***07-11 11:37:20.407 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onCreateView***07-11 11:37:20.407 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onActivityCreated***07-11 11:37:20.407 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onStart...07-11 11:37:20.407 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onStart***07-11 11:37:20.407 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onResume...07-11 11:37:20.407 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onResume***07-11 11:38:04.674 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onPause***07-11 11:38:04.674 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onPause...07-11 11:38:05.018 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onStop***07-11 11:38:05.018 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onStop...07-11 11:38:11.388 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onRestart...07-11 11:38:11.388 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onStart...07-11 11:38:11.388 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onStart***07-11 11:38:11.388 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onResume...07-11 11:38:11.388 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onResume***07-11 11:38:21.363 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onPause***07-11 11:38:21.363 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onPause...07-11 11:38:21.716 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onStop***07-11 11:38:21.716 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onStop...07-11 11:38:21.717 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onDestroyView***07-11 11:38:21.717 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onDestroy***07-11 11:38:21.717 25641-25641/com.example.kangbai.mylifecycle01 E/Fragment: onDetach***07-11 11:38:21.717 25641-25641/com.example.kangbai.mylifecycle01 E/Activity: onDestroy...