[kotlin] 확장 함수를 사용하여 앱의 라이프사이클 이벤트 처리하는 방법은?
아래는 확장 함수를 사용하여 앱의 라이프사이클 이벤트를 처리하는 간단한 예제 코드입니다.
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
import androidx.lifecycle.LifecycleOwner
fun LifecycleOwner.observeAppLifecycle(callback: (state: Lifecycle.Event) -> Unit) {
lifecycle.addObserver(object : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onAppStart() {
callback(Lifecycle.Event.ON_START)
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onAppStop() {
callback(Lifecycle.Event.ON_STOP)
}
// 필요한 다른 라이프사이클 이벤트에 대한 처리도 추가할 수 있습니다.
})
}
위의 코드에서 observeAppLifecycle
확장 함수를 사용하여 액티비티나 프래그먼트의 라이프사이클 이벤트를 관찰할 수 있습니다.
이제 이 확장 함수를 액티비티나 프래그먼트에서 다음과 같이 사용할 수 있습니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
observeAppLifecycle { state ->
// 라이프사이클 변경에 따른 처리를 여기에 추가합니다.
Log.d("AppLifecycle", "onStateChanged: $state")
// 예를 들어, 앱이 시작되거나 중지될 때의 동작을 수행할 수 있습니다.
}
}
}
이를 통해 앱의 라이프사이클 이벤트를 확장 함수를 사용하여 쉽게 처리할 수 있습니다.