Хранение ссылки на объект жизненного цикла в LifecycleObserver
В классе LifecycleObserver насколько хорошо хранить ссылку на объект Lifecycle? Какое осложнение может возникнуть?
class MyLocationListener implements LifecycleObserver {
private Lifecycle mLifecycle;
public MyLocationListener(Context context, Lifecycle lifecycle, Callback callback) {
mLifecycle = lifecycle
...
}
}
1 ответ
Решение
Вы не должны сохранять ссылку, это открытие для утечек памяти, которые наблюдатель должен наблюдать, чтобы не содержать ссылку, и если вы хотите выполнить действия с изменениями жизненного цикла, сделайте это следующим образом:
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY //you can change to whatever lifecycle event you need)
public void activityDestroied() {
//actions here
}