Sae*_*ani 1 java datetime android scheduled-tasks
我想在多个 Android 设备上同步一个动作。为此,我有一个 telnet 客户端,我可以向他们发送消息。
目前我向DoWork On 1397131360435设备发送了一条消息。如您所见,最后一个参数是时间戳。
在我的代码中,我计算给定参数之间的时间差并使用 aTimerTask来调用我想要的方法。
但这并不像我想要的那样工作,因为网络延迟的影响,并且此命令到达设备的时间有点不同,这会导致设备之间出现几毫秒的延迟。
有没有办法可以等待特定的时间戳,然后运行我想要的方法?
目前我喜欢这样:
msDelay = Long.parseLong(args.get(2)) - System.currentTimeMillis();
//inside a listener
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
mySyncMethod();
}
},
msDelay
);
Run Code Online (Sandbox Code Playgroud)
所以我的意思是,我想mySincMethod在时间戳为1397131360435.... 不仅仅是它与本地的区别时运行System.currentTimeMillis()
有句话说得好:有钟的人知道时间;一个有两个时钟的人永远是不确定的......
将设备与毫秒精度同步有很多问题:网络延迟、不同的每个设备日期、设备启动这些任务的不同延迟......我建议使用 Tim 的方法,但首先