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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值