Android-两种方式实现倒计时
来源:互联网 发布:工会财务软件数据恢复 编辑:程序博客网 时间:2024/05/30 04:32
目标效果:
两个倒计时都是从20秒倒计时到0秒。
1.activity_main.xml页面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:id="@+id/tvTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="100dp" android:textSize="15sp" android:gravity="center" android:text="添加子线程倒计时00:20" /> <TextView android:id="@+id/tvNoThreadTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="200dp" android:textSize="15sp" android:gravity="center" android:text="未添加子线程倒计时00:20" /></RelativeLayout>
2.MainActivity.class页面:
package com.example.daojishi;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {private TextView tvTime, tvNoThreadTime;private int time = 20, noThreadTime = 20;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvTime = (TextView) findViewById(R.id.tvTime);tvNoThreadTime = (TextView) findViewById(R.id.tvNoThreadTime);thread.start(); // 调用添加子线程的倒计时noThreadHandler.postDelayed(downTime, 1000); // 调用未添加子线程的倒计时}/* 使用线程进行倒计时 */// Handler用于子线程和主线程通信Handler handler = new Handler() {public void handleMessage(Message msg) {tvTime.setText("添加子线程倒计时00:" + msg.what);};};// 创建子线程倒计时Thread thread = new Thread(new Runnable() {@Overridepublic void run() {while (time > 0) {try {Thread.sleep(1000);time--;handler.sendEmptyMessage(time); // 向handler发送int型数据} catch (InterruptedException e) {e.printStackTrace();}}}});/* 未使用线程进行倒计时 */Handler noThreadHandler = new Handler();Runnable downTime = new Runnable() {@Overridepublic void run() {noThreadHandler.postDelayed(downTime, 1000); // 每隔一秒调用一次noThreadTime--;if (noThreadTime <= 0)noThreadHandler.removeCallbacks(downTime); //停止调用tvNoThreadTime.setText("未添加子线程倒计时00:" + noThreadTime);}};}
0 0
- Android-两种方式实现倒计时
- ios 倒计时的两种实现方式
- Handler实现倒计时的两种方式
- iOS活动倒计时的两种实现方式
- Android倒计时的三种实现方式
- Android 实现倒计时的几种方式
- Android 之倒计时验证两种常用方式
- Java格式化倒计时的两种方式
- Android中实现倒计时的几种方式
- Android验证码倒计时实现方式总结
- iOS倒计时实现之两种方法
- 倒计时实现的两种方法
- Android:View Animition 两种实现方式
- Android放大镜实现的两种方式
- Android TabHost两种实现方式
- Android实现计算器的两种方式
- Android放大镜实现的两种方式
- android两种方式实现离线缓存
- 国内数据库技术大牛:牛新庄博士自传(转)
- 轻量级分布式 RPC 框架
- 二叉树的叶结点和高度
- flashbench
- 简单工厂模式
- Android-两种方式实现倒计时
- 用express布置模板布局
- OpenGL的视图变换与OSG漫游器
- osg中漫游器的原理——osgGA::CameraManipulator(二)
- 练习
- golang 问题集
- 设置tomcat的jvm参数
- bzoj 2798 [Poi2012]Bidding 博弈论 dp
- JS的动态函数