android TimerTask 动态设置时间

来源:互联网 发布:md5加密 java验证 编辑:程序博客网 时间:2024/04/18 13:16

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