【问题标题】:Firebase listener is blocked in Java(Android)Firebase 侦听器在 Java(Android) 中被阻止
【发布时间】:2014-04-14 20:15:26
【问题描述】:

我有一个简单的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) 行是为了演示我的问题,即处理程序只能在其他所有操作完成后才能触发!在这种情况下,它永远不会。当我删除此行时,它会起作用。

我认为这是设计使然。有没有办法让它在这些情况下工作,不管后面发生什么?

谢谢

【问题讨论】:

    标签: java android websocket firebase


    【解决方案1】:

    while(true) 将永久阻止线程接收事件,因为 Android 客户端使用主线程发布事件。

    可以设置不同的线程通过Config.setEventTarget()接收事件

    在这种情况下,EventTarget 被传递给 Runnable 的实例,它负责运行以接收事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 2019-09-08
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      相关资源
      最近更新 更多