我想在不同的线程上运行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并在执行程序中运行它)
答案 0 :(得分:9)
Firebase数据库客户端在单独的线程上执行所有网络,磁盘I / O和其他维护。然后它将回调表示为主线程上的代码,以便您可以与UI进行交互。
在大多数情况下,您不必执行任何特殊操作,只需让Firebase客户端处理跨线程处理即可。只有当你需要在回调中做一些繁重的工作时(例如onDataChange()
),你才必须再次从主线程中运行该工作。你可以使用通常的Android线程机制。