package com.example.lifecycledemo
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class LifecycleDemoActivity : AppCompatActivity() {
private lateinit var logTextView: TextView
private lateinit var clearButton: Button
private fun logEvent(event: String) {
logTextView.append("$event\n")
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_lifecycle_demo)
logTextView = findViewById(R.id.logTextView)
clearButton = findViewById(R.id.clearButton)
clearButton.setOnClickListener {
logTextView.text = ""
}
logEvent("onCreate")
}
override fun onStart() {
super.onStart()
logEvent("onStart")
}
override fun onResume() {
super.onResume()
logEvent("onResume")
}
override fun onPause() {
super.onPause()
logEvent("onPause")
}
override fun onStop() {
super.onStop()
logEvent("onStop")
}
override fun onDestroy() {
super.onDestroy()
logEvent("onDestroy")
}
}This app logs each lifecycle event to a TextView. By seeing these logs, you understand when each lifecycle method runs.
This helps prevent bugs because you know when to update UI or release resources. For example, updating UI in onResume ensures the screen is visible. Clearing logs with a button shows how user actions can interact with lifecycle.
Using lifecycle methods properly avoids crashes or unexpected behavior when the app moves between states.