package com.example.androidarchitecture
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.example.androidarchitecture.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private val TAG: String = "===="
private val binding: ActivityMainBinding by lazy {
ActivityMainBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
// add LifeCycle Observer on Our Activity
lifecycle.addObserver(Observer())
Log.d("====", "Activity onCreate")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "Activity - onResume")
}
override fun onPause() {
super.onPause()
Log.d(TAG, "Activity - onPause")
}
override fun onStop() {
super.onStop()
Log.d(TAG, "Activity - onStop")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "Activity - onDestroy")
}
}
Benefits:
so Our life cycle observer is separate from activity so we can assign this observer to multiple Activities Or Fragments without copy & pasting same task on each components.
when Activity lifecycle method called Observer automatically invoke method relate to that method Or has Connection with that method from observer class