利用多线程实现计时器Timer功能
2017-05-08 09:38
459 查看
设计一个计时器TimerDemo,实现计时依次减少,用按钮Button实现功能
1:,设计布局如下所示:
2:布局文件设计代码,一个TextView为计时器显示,一个Button按钮调用onclick事件实现计时器功能
3:编写onclick事件代码,利用多线程 new Thread(new Runnable() { }.start()实现
4:运行代码布局如下:
5:本次实现需要用到的重要内容Handler消息机制原理及关系如下
1)
2)Handler具体实现功能描述:
6:实验感悟:
通过这次实验,依次掌握线程在安卓中的使用和Handler消息机制的了解,通过测试代码计时器的功能,更加熟悉了解。
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消息机制的了解,通过测试代码计时器的功能,更加熟悉了解。
相关文章推荐
- Java:利用java Timer类实现定时执行任务的功能
- Java定时任务:利用java Timer类实现定时执行任务的功能
- .NET在Global中利用Timer与Application来实现网站定时器功能
- Java:利用java Timer类实现定时执行任务的功能
- java.util.Timer类可以实现多线程一样的功能
- Android开发(14)-- 多线程中实现利用自定义控件绘制小球并完成小球自动下落的功能
- epoll定时器实现系列文章:linux c++ 利用timerfd和epoll封装计时器(Timer)类
- 利用Timer类实现"显示时间"的功能
- Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例
- Android 利用 RXJAVA interval 操作符 实现 计时器 功能
- ASP.NET中使用计时器(Timer)来实现群发邮件等功能
- ASP.NET中使用计时器(Timer)来实现群发邮件等功能(转载)
- 利用Python实现多线程聊天功能
- ASP中利用OWC控件实现图表功能详解
- 利用HttpSessionListener实现网站在线人数统计功能[摘]
- VC下利用多线程实现文件的快速检索
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- 利用sql语句实现的几个功能
- 利用HttpSessionListener实现网站在线人数统计功能
- ASP中利用OWC控件实现图表功能详解