У меня есть абстрактный класс, реализующий DefaultLifecycleObserver
. Я хотел бы вызвать lifecycle.addObserver(this)
из блока init
, но он говорит: «Утечка 'this' в конструкторе неоконечного класса MyAbstractClass» .
Мой код:
abstract class MyAbstractClass(protected val activity: AppCompatActivity) : DefaultLifecycleObserver {
init {
activity.lifecycle.addObserver(this)
}
.
.
.
}
Я могу переместить эту строку кода в блок инициализации каждого последнего класса, расширяющего этот абстрактный класс, но мне не нравится эта идея, особенно потому, что я хочу гарантировать, что каждый новый класс, который будет Расширение MyAbstractClass в будущем также будет называть его. Есть ли лучшее место, чтобы вызвать это, не создавая утечки?