怎么在Android中利用Handler实现一个倒计时功能

本篇文章给大家分享的是有关怎么在Android中利用Handler实现一个倒计时功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

专注于为中小企业提供网站设计制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业浈江免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

代码实现

新建一个名为CountdownTime的项目,activity_main.xml代码如下:




  

MainActivity.class代码如下:

public class MainActivity extends AppCompatActivity {

  /**
   * 倒计时标记
   */
  public static final int COUNTDOWN_TIME_CODE = 99999;
  /**
   * 倒计时间隔
   */
  public static final int DELAY_MILLIS = 1000;
  /**
   * 倒计时最大值
   */
  public static final int MAX_COUNT = 10;
  /**
   * 文本控件
   */
  private TextView countdownTimeTextView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化文本控件
    countdownTimeTextView = findViewById(R.id.countdownTimeTextView);
    //创建一个handler
    CountdownTimeHandler handler = new CountdownTimeHandler(this);
    //新建一个message
    Message message = Message.obtain();
    message.what = COUNTDOWN_TIME_CODE;
    message.arg1 = MAX_COUNT;
    //第一次发送message
    handler.sendMessageDelayed(message, DELAY_MILLIS);
  }

  public static class CountdownTimeHandler extends Handler {
    /**
     * 倒计时最小值
     */
    public static final int MIN_COUNT = 0;
    //创建MainActivity弱引用
    final WeakReference mWeakReference;

    public CountdownTimeHandler(MainActivity activity) {
      this.mWeakReference = new WeakReference<>(activity);
    }

    @Override
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      //获取对MainActivity的弱引用
      MainActivity activity = mWeakReference.get();
      switch (msg.what) {
        case COUNTDOWN_TIME_CODE:
          int value = msg.arg1;
          activity.countdownTimeTextView.setText(String.valueOf(value--));
          //循环发送消息的控制
          if (value >= MIN_COUNT) {
            Message message = Message.obtain();
            message.what = COUNTDOWN_TIME_CODE;
            message.arg1 = value;
            sendMessageDelayed(message, DELAY_MILLIS);
          }
          break;
      }
    }
  }
}

以上就是怎么在Android中利用Handler实现一个倒计时功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


标题名称:怎么在Android中利用Handler实现一个倒计时功能
路径分享:http://azwzsj.com/article/ghcsej.html