Android timer计时器

 

 

 private void stopTime() {
        LogUtils.e("stopTime");
        if (timer != null) {
            timer.cancel();
            timer = null;
        }
        if (task != null) {
            task.cancel();
            task = null;
        }
    }


    Timer timer;
    TimerTask task;

    private void startTime(String time) {
        LogUtils.e("startTime");
        if (timer == null) {
            timer = new Timer();
        }
        if (task == null) {
            task = new TimerTask() {
                @Override
                public void run() {
                    startActivity(new Intent(RestService.this, RestHintActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
                }
            };
        }

        time = time.replace("分钟", "");
//        long period = Integer.parseInt(time) * 60;
        long period = 10000;
        timer.schedule(task, period);
    }




timer回收
   timerTask.cancel();
                        timer.purge();将timer中的task为cancel的状态进行回收;
                        timerTask = null;
demo:

private void initTimer() {

        if (timer == null) {
            timer = new Timer();
        }
        if (timerTask == null) {
            timerTask = new TimerTask() {
                @Override
                public void run() {
                    timeIsRun = true;
                    if (video_duration > 999) {
                        return;
                    }
                    if (mediaPlayer != null) {
                        try {
                            video_position = mediaPlayer.getCurrentPosition() / 1000;

                        } catch (IllegalStateException e) {
                            Log.e(TAG, "timer中 media获取错误: ");
                        }
                    }
                    Log.e(TAG, "run video_position: "+video_position );
                    Log.e(TAG, "run video_duration: "+video_duration );
                    String current = BigDecimalUtils.div((video_duration - video_position) + "", video_duration + "", 5);

                    if (BigDecimalUtils.compare(current, video_first) && !video_is_first) {
//                        第一次超过1/4时,上报1/4视频进度;
                        Log.e(TAG, "上报 play_first: ");
                        commitAdEvent(adInfoUtils.getList_video_play_first());
                        video_is_first = true;
                    }
                    if (BigDecimalUtils.compare(current, video_midpoint) && !video_is_midpoint) {
//                        第一次超过2/4时,上报2/4视频进度;
                        Log.e(TAG, "上报 video_play_midpoint: ");
                        commitAdEvent(adInfoUtils.getList_video_play_midpoint());
                        video_is_midpoint = true;
                    }
                    if (BigDecimalUtils.compare(current, video_third) && !video_ist_third) {
//                        第一次超过3/4时,上报3/4视频进度;
                        Log.e(TAG, "上报 video_play_third: ");
                        commitAdEvent(adInfoUtils.getList_video_play_third());
                        video_ist_third = true;
                    }

                    handler.sendEmptyMessage(updataTimeType);

                    if (!videoDialog.isShowing()||video_position == video_duration) {
                        timeIsRun = false;
                        timerTask.cancel();
                        timer.purge();
                        timerTask = null;
                        return;
                    }

                    Log.e("TAG", "run video_position: " + video_position);
                }
            };
        }
        if (timeIsRun) {
            return;
        }
        timer.schedule(timerTask, 0, 500);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jian11058

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值