考虑一个Java程序,其中侦听器触发某个函数。假设用户操作连续几次激活侦听器。我的问题是:如何让Java仅在此触发行中执行该函数一次,并且只有在上次激活侦听器后经过了一定时间后才会执行该函数?
我试图在Google和StackExchange上查找一些信息,但我找不到任何提示。
(提供一些背景信息:我尝试使用Google Maps API开发Android应用,其中包括从庞大的GPS点数据库中绘制标记/标记群集,只想添加点数当前地图视图。如果用户移动地图,OnCameraChangeListener
会在地图仍在移动时激活很多次。但是,由于数据库非常庞大并且搜索GPS点以获取给定的摄像机视图可能需要有一段时间,我不想触发在地图视图闲置之前添加标记的功能,让我们说一秒钟。)
答案 0 :(得分:0)
您可以直接坚持帖子中描述的这两个值:
- Boolean isFunctionRunning
- GregorianCalendar timeLastRun
然后,如果isFunctionRunning =>自从timeLastRun>以来的假和时间1秒钟,你启动功能。