我需要一种非常简单的方法来记录时间。基本上我只需要在调用一个方法时启动一个计时器,然后在设定的时间(45-90 秒)后调用另一个方法。
据我所知,处理程序是处理时间跟踪的最有效方式。然而,有些人说他们需要第二个线程,而另一些人则说他们不需要。这当然不是什么大不了的事,但我更愿意让事情尽可能简约。那么,有没有什么方法可以做一些事情,比如简单地检查 System.getCurrentTimeMillis 是否比用户调用第一个方法时高出一定数量,当然不需要任何进一步的用户交互。
如果没有,我将更多地阅读 Handlers 并使用它们。感谢您的帮助。
最佳答案
在调用第一个方法后,您将在 90 秒后调用第二个方法:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//here call the second method
}
}, 90000);
但是,如果用户单击返回并离开 Activity ,这个延迟后的可运行对象将重新启动 Activity ,因此您需要在其中放置一个 if 语句来检查该 Activity 是否仍在运行...
如果您需要监控在计时器结束前每 1 秒过去了多少时间,那么您可以使用此代码
new CountDownTimer(90000, 1000) {
public void onTick(long millisUntilFinished) {
//call to my UI thread every one second
}
public void onFinish() {
//final call to my UI thread after 90 seconds
}
}.start();
关于android - 在 Android 中处理时间的各种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910929/