java - Firebase 监听器在 Java (Android) 中被阻止

标签 java android websocket firebase

我有一个简单的 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/

相关文章:

javascript - 在什么情况下 websocket 关闭事件会告诉你 wasClean 是假的?

使用 Mockito 时不会模拟 Android 方法

javascript - 数组和 ArrayBuffer 有什么区别?

php - 如何在laravel中生成类似facebook的实时通知系统

java - 使用 JSON 文件中的 ListView 的 Android 搜索功能(困难)

android - PARTIAL_WAKE_LOCK 和线程在服务中运行

android - ViewPager Fragment OncreateView 根据切换的选项卡数量多次调用

java - 我的比较器方法如何违反其一般契约?

java - mybatis 插入带有列表的嵌套 pojo

java - TextView 中的文本对齐方式