前言:熟练掌握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...