-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
OnLifecycleEvent가 Deprecated 되었습니다
21.11.18 08:59 작성 조회수 1.27k
0
영상에서 LifecycleObserver을 구현하고 있는데 현재 어노테이션을 사용하는 것이 비활성화 되어서 어떻게 진행하면 좋을지 궁금합니다. DefaultLifecycleObserver을 구현해서 사용하는 것이 차선책일까요?
답변을 작성해보세요.
2
오준석
지식공유자2021.11.18
네. androidx.lifecycle:lifecycle-*:2.4.0 부터 DefaultLifecycleObserver 또는 LifecycleEventObserver를 사용해야 되는데요.
LifecycleEventObserver를 사용하여 수정된 코드는 다음과 같습니다. GitHub에도 반영하였습니다.
class MainViewModel(application: Application) : AndroidViewModel(application),
SensorEventListener, LifecycleEventObserver {
...
private fun registerSensor() {
sensorManager.registerListener(
this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL
)
}
private fun unregisterSensor() {
sensorManager.unregisterListener(this)
}
...
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
if (event == Lifecycle.Event.ON_RESUME) {
registerSensor()
} else if (event == Lifecycle.Event.ON_PAUSE) {
unregisterSensor()
}
}
}
답변 1