Android实现倒计时跳转和延时操作

App启动页倒计时3秒跳转到App的首页,这种操作在很多App中都很常见。如果需要做一个延时操作呢?写一个子线程停留3秒然后执行操作,这样的话需要特别的注意的是UI操作必须放在主线程里,那么还需要转化成主线程?NO,使用Handler轻松实现倒计时和延时操作。

一.启动页倒计时详细操作

private int duration = 6;
private Handler updateHandler = new Handler() {
    @Override
    public void dispatchMessage(Message msg) {
      super.dispatchMessage(msg);
      if (msg.what == 2) {
        if (duration > 0) {
          duration--;
          appStartBinding.jumpButton.setText(duration + "s跳过");
          if (duration == 1) {
            //用户自己的操作
          }
          updateHandler.sendEmptyMessageDelayed(2, 1000);
        }
      }
    }
  };

//在需要倒计时的地方执行以下代码
updateHandler.sendEmptyMessage(2);

二.延时操作

使用Handler做延时请求,无需担心UI线程是否在主线程

private Handler updateHandler = new Handler() {
    @Override
    public void dispatchMessage(Message msg) {
      super.dispatchMessage(msg);
      if (msg.what == 14) {
        //用户自己的操作
      }
    }
  };

//在需要延时操作的地方执行以下代码
/**
 * 第一参数:what
 * 第二个参数:需要延时的毫秒数
 */
 updateHandler.sendEmptyMessageDelayed(14, 2000);

以上实现倒计时和延时操作,不要忘记在Activity的onDestroy()方法里移除。

if (updateHandler != null) {
      updateHandler.removeCallbacksAndMessages(null);
    }

以上就是Android里简单实用的倒计时跳转和延时操作的具体步骤和代码,实现倒计时和延时操作有很多种,具体的还是需要看能否满足自己的需求。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为了更好的理解 Looper 的工作原理,我们需要对 ThreadLocal 进行了解,如果对 ThreadLoc...
    墨染书阅读 1,519评论 0 3
  • 一、简历准备 1、个人技能 (1)自定义控件、UI设计、常用动画特效 自定义控件 ①为什么要自定义控件? Andr...
    lucas777阅读 5,266评论 2 54
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • (一)小寒行动 24节气,今至小寒节…… 候鸟把冬天藏在翅膀里,童话把冬天藏在糖果里,我把冬天藏在祝福里…… 今日...
    拈花老夏阅读 403评论 2 13
  • 谈癌色变,你不怕?!胡诌,胡扯吧。你!瞎咧咧个啥?忽悠谁呢?火炭没落你身上;饱汉子不知饿汉饥;站着说话不腰痛吧,你...
    俞明欣阅读 658评论 4 31