如果更新的值相同,则只调用LiveData观察器内部的函数一次



我正在构建一个我想要自动化的面部识别系统。我使用实时数据来观察相机预览中位图的变化,如果变化中有人脸,我会在数据库中与用户进行核对并比较面部特征,如果发现匹配,我会记录用户登录的时间。问题是,该请求是分别发送的,因为位图仍在更新我正在观察的实时数据以触发比较功能。有没有一种方法可以确保函数在观察者内部被调用一次?如果有任何帮助,我将不胜感激。任何澄清问题也欢迎提出。

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

最新更新