当用户在 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/