2

我需要一种非常简单的方法来跟踪时间。基本上我只需要在调用一个方法时启动一个计时器,然后在一段时间后(45-90 秒)调用另一个方法。

根据我的阅读,处理程序是处理时间跟踪的最有效方式。然而,有些人说他们需要第二个线程,而另一些人说他们不需要。这当然不是什么大不了的事,但我更愿意让事情尽可能简约。那么,有没有办法做一些事情,比如简单地检查 System.getCurrentTimeMillis 是否比用户调用第一个方法时高出一定数量,当然没有任何进一步的用户交互。

如果不是,我将更多地阅读 Handlers 并使用它们。谢谢您的帮助。

4

2 回答 2

0

调用第一种方法后,90 秒后调用第二种方法:

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //here call the second method

            }   

}, 90000);

但是,如果用户单击返回并离开活动,这个延迟后的可运行将重新启动活动,因此您需要在其中放置一个 if 语句来检查该活动是否仍在运行......

如果您需要监控在计时器结束之前每 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();
于 2011-02-06T04:35:27.963 回答
0

我会使用 TimerTask 和 postDelayed 方法。有关详细说明,请参见此处:

http://android-developers.blogspot.com/2007/11/stitch-in-time.html

于 2011-02-06T01:37:12.557 回答