前言:熟练掌握Activity与Fragment的生命周期非常重要,简单给大家整整
一、Activity 生命周期
二、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...