当活动被销毁时,ValueEventListener未被删除时会发生什么。即使在活动破坏后,此事件侦听器也会侦听吗?
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
\todo
}});
Firebase实时数据库侦听器不会自动确定上下文/活动的范围。因此,侦听器确实将保持活动状态,直到您明确删除它,或者直到应用程序退出。
如果onDataChange
中的代码访问活动的UI元素,这可能会导致意外结果和崩溃。因此,在生命周期事件(如onStop
或onPause
(中删除侦听器是很常见的。
如果不删除侦听器,它将继续侦听。您将有效地";"泄漏";如果您在不再需要它时不将其删除,则侦听器。侦听器对Android活动生命周期一无所知,因此您必须添加代码才能在正确的时间删除它。