java - 在 x 分钟做某事,然后每隔 n 分钟再做一次

标签 java math

当用户在 2 分钟或之后访问特定屏幕时,我需要展示广告,然后每当他们在 6 分钟、10、14、16...后再次访问时展示广告

我有下面的代码,如果用户在 2、6、10、14 分钟等访问屏幕,它可以正常工作,但如果用户错过这些分钟,它就不起作用。例如,如果广告在第 2 分钟展示,但用户直到第 8 分钟才回来,则会错过第 6 分钟的广告。

如何利用我所拥有的资源来满足此要求,以便如果用户在这些分钟之外回来,仍然会显示针对他们的广告?

long start = adStartTime;
long now = new Date().getTime();
int minsElapsedSinceLastAd = (int) ((now - start) / 1000 / 60);
showAd = previousRunMin !=minsElapsedSinceLastAd&& minsElapsedSinceLastAd % 4 == 2;
if (showAd) {
   showAd();
   ...
   previousRunMin = minsElapsedSinceLastAd;

}

previousRunMin 存在,因此如果用户在同一分钟返回,则不会显示广告

最佳答案

考虑将 ScheduledThreadPoolExecutor 与 scheduleAtFixedRate 一起使用:此处描述的调用:ScheduledExecutorService#scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)按照您的要求,以指定的延迟和周期在单独的线程中安排 Activity 。也许我可以更具体地描述您的应用程序,但您的问题中包含的代码片段没有提供足够的上下文来理解计划的 Activity 如何工作。

关于java - 在 x 分钟做某事,然后每隔 n 分钟再做一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454803/

相关文章:

python - 获得 'large' 错误,这些错误似乎太大而不能单独来自舍入

javascript - 环形截面点击事件

java - 连接由控制字段确定的不同表

r - 用 R 求解欠定线性系统

python - 使用嵌套列表中的整数对列表进行数学运算

python - 为什么 math.sqrt 会导致 ValueError : math domain error?

java - 确保该方法返回一个 List<String> 而不仅仅是一个 List。在java中

java - 如何在 Java Swing 中对表格中选中的组合框组件进行颜色渲染?

Java - 在 Centos 中执行 .sh 文件

java - 通过 VPC 对等连接到 RDS 时出现 Spring Boot UnknownHostException