如果更新值相同,则仅在 LiveData 观察器中调用一次函数

Call function inside LiveData observer only once if the updated value is the same

我正在构建一个面部识别系统,我希望它是自动的。我使用实时数据观察相机预览中位图的变化,如果变化中有一张脸,我会在我的数据库中检查用户并比较面部特征,如果找到匹配项,我会记录用户签到的时间。问题是该请求是单独发送的,因为位图仍在更新我观察到的实时数据以触发比较功能。有没有办法确保函数在观察者内部只被调用一次?我将不胜感激任何帮助。也欢迎任何澄清问题。

我终于为遇到相同问题的任何人找到了答案。它可能看起来很老套,但欢迎提出改进建议。 我使用了两个实时数据对象,但状态流也可以正常工作。我将其中一个命名为触发器,另一个命名为面部数据。触发器是一个布尔型实时数据对象,在其观察者内部,我在使用面部数据对象中的数据开始比较之前检查触发器值是否为真。比较开始后,我将触发器更新为 false。在此期间不会进行其他比较,比较完成后我会显示结果并将触发器更新回 true 以进行进一步比较。我还允许用户有五秒的延迟离开框架,而另一个用户进入框架以避免单个用户的多个条目。