Android 中activity的生命周期,
总共有7个函数,分别是onStart() onStop() onDestroy() onPause() onResume() onRestart() onCreate(),通过日志打印显示出Activity的生命周期;
首先在MainActivity中重写上面的七个方法后,在每一个方法里面用Log.i()方法在控制台打印输出各自的信息。启动工程,看到依次是onCreate()->onStart()->onResume()当在模拟器上按下退回键,该Activiry就会销毁依次显示onPause()->onStop()-> onDestroy()这个一个完整的周期。
当发生遮挡,分为完全遮挡和部分遮挡,当完全遮挡生命周期为onCreate()->onStart()->onResume()->onPause()->onStop()->onRestart()->onStart()-继续运 ,,,,,
当发生部分遮挡时其生命周期为onCreate()->onStart()->onResume()->onPause()->onResume继续执行;
代码实验验证: 用一个textview的点击来打开第二个Main2Activity,实现遮挡的效果,然后启动工程,显示开始onCreate()->onStart()->onResume()-当点击textview日志显示onPause()->onStop()当关闭第二个Activity后onRestart()->onStart()->onResume()就把第一个Activity显示出来了
activity中代码如下
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import java.util.Map; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; public MainActivity() { super(); } // 7个 @Override protected void onStart() { super.onStart(); Log.i(TAG, "onStart: "); } @Override protected void onStop() { super.onStop(); Log.i(TAG, "onStop: "); } @Override protected void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy: "); } @Override protected void onPause() { super.onPause(); Log.i(TAG, "onPause: "); } @Override protected void onResume() { super.onResume(); Log.i(TAG, "onResume: "); } @Override protected void onRestart() { super.onRestart(); Log.i(TAG, "onRestart: "); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG, "onCreate: "); TextView textView=(TextView)findViewById(R.id.textview); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); } }