Android 实时倒数计时器

Android 实时倒数计时器,android,ios,database,web,timer,Android,Ios,Database,Web,Timer,是否可以在数据库或站点上设置一个实时计时器,并使用该计时器检查它是否达到某个时间,以及何时在java、swift和web中运行某个方法。例如: if (liveTimerFromDatabaseOrOnlineSite == 20seconds) { method1(); } else if (liveTimerFromDatabaseOrOnlineSite == 30seconds) { method2(); } etc.... 我不完全确定你的问题是关于服务器端预定作业还

是否可以在数据库或站点上设置一个实时计时器,并使用该计时器检查它是否达到某个时间,以及何时在java、swift和web中运行某个方法。例如:

if (liveTimerFromDatabaseOrOnlineSite == 20seconds) {
    method1();
} else if (liveTimerFromDatabaseOrOnlineSite == 30seconds) {
    method2();
} etc....

我不完全确定你的问题是关于服务器端预定作业还是关于应用程序中的定时功能。这两个问题都有答案

用于服务器端计划作业 我认为做你想做的事情最好的方法就是类似于。基本上,这些“cron作业”所做的是将系统时钟连接到shell,shell将在特定时间或特定时间间隔运行命令。将文件加载到特定位置,并在该文件中指定一个字符串列表,当作业启动时,这些字符串将作为shell中的参数运行,这基本上允许您运行所需的任何程序

对于Linux: 使用实际的cron。你可以找到一个很好的教程

对于OS X: 使用类似于cron文件的.plist文件。你可以找到一个很好的教程

对于Windows: 我想,但我不确定,您可以使用Windows任务计划程序。教程是,但这适用于Windows7。我个人从未在Windows上做过这件事

用于应用程序中的定时功能 迅速地 斯威夫特使这样的事情变得非常容易。只要用一个铅笔

要在Swift中安排重复计时函数调用,请执行以下操作:

var myTimer = NSTimer.scheduledTimerWithTimeInterval(MY_TIME_INTERVAL, target: myObjectContainingMyMethod, selector: "myMethod", userInfo: nil, repeats: true)
你有一个定时定时器,它会无限期地重复。您可以取消计时器,但不需要呼叫

myTimer.invalidate()
适用于Java(Android)
这有点复杂。有关详细说明,请参阅。

在应用程序启动时获取当前倒计时时间,然后在本地跟踪剩余时间可能会更简单,而不必重复检查服务器上的时间。不过,我将在哪里放置此计时器?如果我把它放在实际的应用程序中,那么每个应用程序将在不同的时间运行。我希望当有人打开应用程序时,他们可能会在同一时间运行同一个方法。你的应用程序中会有一个计时器,每秒钟触发一次。当应用程序启动时,您从服务器检索当前值,例如剩余50秒,并将其保存在变量中。每次定时器触发时,您都会从变量中减去一个,并检查剩余时间,调用适当的方法。另一个用户在45秒后启动他们的应用程序,然后开始倒数计时。他们的计时器不会在完全相同的毫秒触发,但应该很接近。你到底想干什么还不清楚,明白了。我只是想避免将它放在变量中,并确保它不断地从计时器服务器进行检查,以便它在同一时间执行相同的方法。比如说计时器从0开始,每30秒执行一个特定的方法,所以当实时计时器在31时,这些方法不会在任何电话或网络上执行,但当它到60时,第二个方法会执行,等等。我很困惑这个计时器是在应用程序中还是在运行数据库的服务器上?你的问题听起来像是后者,但现在在评论中看起来像是前者。