我的应用程序中有两种类型的用户,一名客户和一名送货员, 客户在数据库中的特定送货员中设置值,送货员监听该值,并接受或拒绝其他值中的客户请求。 我需要的是在客户端设置监听器然后让他等待15秒钟的送货员响应,然后转移到另一个送货员,怎么做?
答案 0 :(得分:0)
您可以将postDelayed
与Firebase valueEvent侦听器一起使用。
在您的活动中声明全局可运行变量。
final Handler handler = new Handler(Looper.getMainLooper());
Runnable runnable = null;
然后在要读取的节点上添加值事件侦听器。
在回调onDataChange
中检查快照是否不存在且runnable变量为null,设置计时器。
new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists() && runnable == null) {
// initialize runnable
// handler.postDelayed(runnable,15000)
} else
{ //cancel the runnable if not null so that it don't get triggered}
}
@Override
public void onCancelled(DatabaseError databaseError) { }
}