Activity启动模式
标准的启动模式 standard
class FirstActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("启动",this.toString())
setContentView(R.layout.first_layout)
// var button1: Button=findViewById(R.id.button1){
button1.setOnClickListener {//注册一个监听器
//Activity的启动模式
val intent1 = Intent(this,FirstActivity::class.java)
startActivity(intent1)
//Activity的启动模式
}//按钮
}
override fun onDestroy() {
super.onDestroy()
Log.d("销毁",this.toString())
}
}
连续点击3次按钮
对于使用standard模式的Activity系统不会知乎这个Activity是否存在,每次启动都会创建一个该Activity的新实例
在standard模式下每当启动一个新的Activity 它都会从返回栈中入栈,并处于栈顶, 所以这个Activity @48bd36a 处于栈顶
2020-12-08 13:36:36.089 8953-8953/com.example.activitytest D/启动: com.example.activitytest.FirstActivity@48bd36a 这个实例在栈顶
每点击一次按钮就会创建一个新的实例 此时返回栈中也存在3个实例,
因此需要连续点击3次Back键才能退出程序
2020-12-08 13:49:15.223 8953-8953/com.example.activitytest D/销毁: com.example.activitytest.FirstActivity@48bd36a
为什么是@48bd36a先被销毁呢,因为它处于栈顶