各种处理Android时序的方法

时间:2011-02-06 01:32:38

标签: android multithreading timer handler countdown

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

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

如果不是,我会更多地阅读处理程序并与之合作。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我会使用TimerTask和postDelayed方法。有关描述的详细信息,请参阅此处:

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

答案 1 :(得分:0)

调用第一种方法后,在90秒后使用以下方法调用第二种方法:

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

            }   

}, 90000);

但是,如果用户单击return并离开活动,则此postdelayed runnable将重新启动活动,因此您需要在其中放入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();