利用多线程实现计时器Timer功能
来源:互联网 发布:域名url转发 编辑:程序博客网 时间:2024/05/19 10:13
设计一个计时器TimerDemo,实现计时依次减少,用按钮Button实现功能
1:,设计布局如下所示:
2:布局文件设计代码,一个TextView为计时器显示,一个Button按钮调用onclick事件实现计时器功能
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.mytimerdemo.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="10" android:textSize="100dp" android:id="@+id/tvNumber" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> <Button android:text="start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:onClick="onStart" android:layout_below="@+id/tvNumber" android:layout_centerHorizontal="true" android:layout_marginTop="73dp" /></RelativeLayout>
3:编写onclick事件代码,利用多线程 new Thread(new Runnable() { }.start()实现
package com.example.administrator.mytimerdemo;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private TextView tvNumber; private int count=10; private static final int UPDATE_TIME=1; private Handler handler=new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case UPDATE_TIME :tvNumber.setText(count+""); } } }; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvNumber=(TextView)findViewById(R.id.tvNumber); } public void onStart(View view){ new Thread(new Runnable() { @Override public void run() { while (count>0){ count--; Message message=new Message(); message.what=UPDATE_TIME; handler.sendMessage(message); // tvNumber.setText(count+""); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); }}
4:运行代码布局如下:
5:本次实现需要用到的重要内容Handler消息机制原理及关系如下
1)
2)Handler具体实现功能描述:
6:实验感悟:
通过这次实验,依次掌握线程在安卓中的使用和Handler消息机制的了解,通过测试代码计时器的功能,更加熟悉了解。
0 0
- 利用多线程实现计时器Timer功能
- MY_GEEK_计时器的timer实现
- Timer计时器实现倒计时跳转
- 使用实现Runnable的多线程,实现秒表计时器功能
- Java_基础—多线程(Timer计时器)
- Android 利用 RXJAVA interval 操作符 实现 计时器 功能
- ASP.NET中使用计时器(Timer)来实现群发邮件等功能
- Android 实现计时器功能
- java.util.Timer类可以实现多线程一样的功能
- 利用Timer类实现"显示时间"的功能
- Android开发中如何实现Timer计时器
- android使用timer和timertask实现计时器
- Timer计时器
- Timer计时器
- 计时器Timer
- Timer计时器
- Timer计时器
- Timer 计时器
- Read_Vector
- C# windows 服务
- UnityUI之Dotween控制文本框移动
- Drupal8导入数据库时出错,需要全部忽略提示的问题
- vue 学习过程中遇到的一个非常气人的报错 Newline required at end of file but not found
- 利用多线程实现计时器Timer功能
- poj3262
- 通过一个小例子了解Java RMI
- git生成ssh并连接到github
- SpringMVC是什么?
- BCC编译器干嘛用的?
- linux下jdk的安装及环境变量的配置
- Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server
- 2、String数据类型的操作