我有一个简单的 onChildAdded
监听器集,但它似乎不起作用:
listRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot,
String previousChildName) {
Log.d("DEBUG","A child has been added!");
// Do stuff...
}
// Other unimplemented methods for ChildEventListener here...
});
while(true);
我正在向 listRef 添加子项,但没有任何反应。
while(true)
行是为了演示我的问题,即处理程序只能在其他一切完成后触发!在这种情况下,它永远不会。当我删除此行时,它会起作用。
我认为这是设计使然。有没有办法让它在这些情况下工作,而不管之后会发生什么?
谢谢
最佳答案
while(true)
将永久阻止线程接收事件,因为 Android 客户端使用主线程来发布事件。
可以通过Config.setEventTarget()设置不同的线程来接收事件
在这种情况下,EventTarget 被传递给 Runnable 实例,它负责运行以接收事件。
关于java - Firebase 监听器在 Java (Android) 中被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22321984/