当前位置:操作系统 > 安卓/Android >>

android TimerTask 动态设置时间

Timer 以及TimerTask的用法,大概就是每隔一定的时间执行一段代码。具体的这里就不介绍了,比较简单。

这篇博客要说明的是,如何动态的设置时间。
下面要说明的是Timer在设置了一个任务之后,会按照你指定的时间进行循环。这个时候,如果你想修改时间,是很困难的,因为系统没有提供修改时间的接口。

我的做法是:把Timer和timertask都重新创建一个新的对象。再此设置你想要设置的时间。


   class MyTimerTask extends TimerTask {


        @Override
        public void run() {
            // TODO Auto-generated method stub
            dowhatyouwant();       

            if (mTaskTime != mGetDataTime) {

               mTimer.cancel();
                Log.i(TAG, "handlemessage mTaskTime is " + mTaskTime + " mGetDataTime is "
                        + mGetDataTime);
                mTimer = new Timer();
                mTaskTime = mGetDataTime;
                myTask = new MyTimerTask();
                mTimer.schedule(myTask, mTaskTime, mTaskTime);
            }
           
            Log.i(TAG, "get data in service!the time is " + mTaskTime);

        }

    }


在程序的其他地方重新设置mGetDataTime的值,当运行到run方法的时候,Timer会更新触发的时间,下一次的触发时间将会是你设置的mGetDataTime


 


作者:kkk0526
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,