android - 在 Android 中处理时间的各种方法

标签 android multithreading timer handler countdown

我需要一种非常简单的方法来记录时间。基本上我只需要在调用一个方法时启动一个计时器,然后在设定的时间(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/

相关文章:

android - 低内存情况下的 startActivityForResult()

android - 在 submitList 之后没有得到 PagedListAdapter 的 itemCount

java - 电梯寻找楼层模拟中的逻辑存在缺陷

c# - Windows服务线程与循环和WCF

android - 以设定的时间间隔运行 AsyncTask

android - 如何更改选项菜单的语言?

java - android studio sdk 版本 22 渲染期间出现异常 : action_bar

java - 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

c# - 标签上日期时间的计时器,错误

javascript - 在 aspx 页面上仅运行一次 javascript 计时器