Firebase数据库 - 在不同的线程上运行

时间:2016-08-10 16:18:18

标签: java android firebase firebase-realtime-database

我想在不同的线程上运行firebase的事件。在firebase的最后一个版本中,我有这个代码来做它

    Config firebaseConfig = new Config();
    firebaseConfig.setEventTarget(new EventTarget() {
        ExecutorService executor = Executors.newSingleThreadExecutor();
        @Override
        public void postEvent(Runnable runnable) {
            executor.execute(runnable);
        }

        @Override
        public void shutdown() {
            executor.shutdown();
        }

        @Override
        public void restart() {

        }
    });
    Firebase.setDefaultConfig(firebaseConfig);

我怎样才能在新的API中执行此操作?他们是一种方式,还是我必须自己实施呢? (创建每个函数的runnable并在执行程序中运行它)

1 个答案:

答案 0 :(得分:9)

Firebase数据库客户端在单独的线程上执行所有网络,磁盘I / O和其他维护。然后它将回调表示为主线程上的代码,以便您可以与UI进行交互。

在大多数情况下,您不必执行任何特殊操作,只需让Firebase客户端处理跨线程处理即可。只有当你需要在回调中做一些繁重的工作时(例如onDataChange()),你才必须再次从主线程中运行该工作。你可以使用通常的Android线程机制。