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