「不要」というより「自動」なので超便利。
ここでは、addObserver()の呼び出しはありますが、onDestroyのremoveObserver()の呼び出しはありません。これは意図的なものでしょうか?
👉 BoundLocationManager.java at googlecodelabs
ライフサイクルを考慮した新しいコンポーネントの良い点は、Observer の解除や削除が不要なことです。
👉 Lifecycle Observer is not removed in step_4 · Issue #5 · googlecodelabs/android-lifecycles
// no need to unsubscribe/remove observers
lifecycleOwner.lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onDestroy(owner: LifecycleOwner) {
container.removeAllViews()
}
})
拡張関数などでも便利に使えそうです。