大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章给大家分享的是有关怎么在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 WeakReferencemWeakReference; 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实现一个倒计时功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。