Android 如果ValueEventListener未从activity onDestroy firebase实时数据库中删除,会发生什么情况

Android 如果ValueEventListener未从activity onDestroy firebase实时数据库中删除,会发生什么情况,android,firebase-realtime-database,Android,Firebase Realtime Database,当活动被销毁时ValueEventListener未被删除时会发生什么情况。 即使在活动销毁后,此事件侦听器也会侦听吗 myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { \\todo }}); Firebase实时数据库

当活动被销毁时ValueEventListener未被删除时会发生什么情况。 即使在活动销毁后,此事件侦听器也会侦听吗

myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
                \\todo
        }});

Firebase实时数据库侦听器不会自动限定到上下文/活动的范围。因此,侦听器确实将保持活动状态,直到您显式删除它,或者直到应用程序退出


如果
onDataChange
中的代码访问活动的UI元素,这可能会导致意外结果和崩溃。因此,在生命周期事件中删除侦听器是很常见的,例如
onStop
onPause

Firebase实时数据库侦听器不会自动限定到上下文/活动的范围。因此,侦听器确实将保持活动状态,直到您显式删除它,或者直到应用程序退出


如果
onDataChange
中的代码访问活动的UI元素,这可能会导致意外结果和崩溃。因此,在生命周期事件中删除侦听器是很常见的,例如
onStop
onPause

如果不删除侦听器,它将继续侦听。如果在不再需要侦听器时不将其删除,您将有效地“泄漏”侦听器。侦听器对Android活动生命周期一无所知,因此您必须在正确的时间添加代码删除它。

如果您不删除侦听器,它将继续侦听。如果在不再需要侦听器时不将其删除,您将有效地“泄漏”侦听器。监听器对Android活动生命周期一无所知,因此您必须在正确的时间添加代码以删除它。

如果未销毁
myRef
,并且有一个活动监听器具有一些更改的数据,则可能会调用
onDataChange()
。如果调用它,代码将执行。如果您在此处访问
context
,它将崩溃,因为活动和上下文已被破坏。您也可以签出。如果
myRef
未被破坏,并且有一个活动侦听器具有一些更改的数据,则可能会调用
onDataChange()
。如果调用它,代码将执行。如果您在此处访问
context
,它将崩溃,因为活动和上下文已被破坏。您也可以签出。