Android Studio通知:如何仅在Firebase数据库中的数据更改时运行通知
在我的Android应用程序中,我使用Firebase实时数据库更新数据更改并显示在屏幕上。Android Studio通知:如何仅在Firebase数据库中的数据更改时运行通知
@Override public void onStart() {
super.onStart();
userReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot userData) {
userStarredMatchList.clear();
for(DataSnapshot userDataSnapshot : userData.getChildren()) {
notificationFunction();
}
}
@Override
public void onCancelled(DatabaseError databaseError) { /* BLANK */}
});
}
我这样做,这样它就会在参考数据更新时运行。数据更新时将运行notificationFunction()
,但问题在于,只要我进入此屏幕并返回到屏幕,它就会运行。
我该如何让它不会在刷新屏幕时运行? (只有在数据更改时才使其运行)。
回答:
尝试将代码移动到onCreate()的某处。
回答:
您可以将功能封装为RxJava Observable,然后使用skip运算符对其进行过滤以跳过第一个事件。
关闭我的头顶:
Observable<DataSnapshot> o = Observable.create(emitter -> { userReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot userData) {
userStarredMatchList.clear();
for(DataSnapshot userDataSnapshot : userData.getChildren()) {
emitter.onNext(userDataSnapshot);
}
}
@Override
public void onCancelled(DatabaseError databaseError) { /* BLANK */}
});
}).skip(1);
然后,您可以订阅它在onStart()
,并显示您的通知。
以上是 Android Studio通知:如何仅在Firebase数据库中的数据更改时运行通知 的全部内容, 来源链接: utcz.com/qa/259567.html