新建布局文件activity_main.xml

 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> <Button
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始计时"
android:textSize="15dp" /> <TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dp" /> </LinearLayout>
 

新建 MainActivity.java

 
package com.example.administrator.timer;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btnOk;
private TextView tvTime; private boolean bStart=false;
private Handler mHander=new Handler();
private int mCount=0; private Runnable mCounter=new Runnable() {
@Override
public void run() {
mCount++;
tvTime.setText("当前计数值:"+mCount);
mHander.postDelayed(this,1000);
}
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
} private void initView() {
btnOk = (Button) findViewById(R.id.btnOk);
tvTime = (TextView) findViewById(R.id.tvTime); btnOk.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnOk:
if (bStart==false){
btnOk.setText("停止计时");
mHander.post(mCounter);
}else{
btnOk.setText("开始计时");
mHander.removeCallbacks(mCounter);
}
bStart=!bStart;
break;
}
}
}
 

发中经常利用Handler启动任务。下面是Handler处理Runnable任务的常见方法说明:

●post: 立即启动Runnable任务。

●postDelayed:延迟若干时间后启动Runnable任务。

●postAtTime:在指定时间启动Runnable任务。

●removeCallbacks: 移除指定的Runnable任务。

原文:https://www.cnblogs.com/ldy731729142/p/12608820.html

android实现计时器(转)的更多相关文章

  1. Android Wear计时器开发

    记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间.随着Android Wear的问世,在可穿戴设备中开发一款这样的App确实是个很不错的想 ...

  2. Android倒计时器——CountDownTimer

    Android倒计时器--CountDownTimer 说明 第一个参数是倒计时的时间 第二个参数是多长时间执行一次回调 /** * @param millisInFuture The number ...

  3. Android 绘制计时器

    用小米的手机,发现其实还可以,无意间点开小米的计时器,发现界面非常好看和实用.于是自己仿照着写一个,由于技术不好,代码整体结构上可能有点乱,但主要的实现功能和掌握知识点. Android中绘制采用ca ...

  4. Android线程计时器实现

    cocos2dx的计时器很好用,但当app进入后台,其计时器会pause掉,如果想要一个稳恒计时器就得自己去实现完成了,在Cocos2d-x for ios中我们可以利用NSTimer类并结合objc ...

  5. Android简单计时器

    本文利用ContextMenu(上下文菜单),Chronometer实现简单计数器. Main.xml: <?xml version="1.0" encoding=" ...

  6. Android简单计时器(转)

    原文:http://blog.csdn.net/fwwdn/article/details/7550822 本文利用ContextMenu(上下文菜单),Chronometer实现简单计数器. Mai ...

  7. android实现计时器

    新建布局文件activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearL ...

  8. 《Android学习指南》目录

    源:<Android学习指南>目录 Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这 ...

  9. Android学习笔记总结

    第一步: Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序 搭建 Android 的开发环境,以及写一个简单的示例程序 · 在 Win ...

随机推荐

  1. linux上传启动项目命令

    使用Xshell 或其他远程链接登录工具登录服务器后 1.切换用户到root: sudo -i 账户密码 注意:可直接将jar包放入root用户目录下,避免有可能因为服务器文件夹权限设置导致在指定文件 ...

  2. Go语言中的单例模式

    Go语言中的单例模式 在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python.PHP.Ruby)转向Go语言的跨语言学习者. Go语言太容易实现并发了,以至于它在很多地方被不正 ...

  3. Jenkins+gitlab发布Django程序

    Jenkins+gitlab发布Django程序 一. 二. 三.shell # !/bin/bash cd /root/upload_file #git add . #git commit -m ' ...

  4. Go语言流程控制06--猜数字游戏

    package main import ( "fmt" "math/rand" "time" ) /* ·随机生成一个三位数 ·让用户输入其 ...

  5. The Superego 实验四 团队作业1:软件研发团队组建

    项目 内容 课程班级博客链接 班级博客链接 这个作业要求链接 作业要求链接 团队名称 The Superego 团队的课程学习目标 (1)组建团队,建设团队文化,申请开通团队博客 (2)团队之间相互协 ...

  6. 状压dp(总结)状态压缩

    状压这个和二进制分不开关系 所以,对于二进制的熟悉是必不可少的技能 &  与操作,1不变,0变0 |  或操作,0不变,1变1 ^  异或操作,0不变,1取反 - 取反操作,把每一个二进制位0 ...

  7. Auto ML自动调参

    Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...

  8. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  9. 【C++】类

    一个简单例子: 1 //c++ 类 2 #include<iostream> 3 using namespace std; 4 class Point 5 { 6 private: 7 i ...

  10. 管理后台Vue

    管理后台 遇到的问题 搭建 基于vue 3.0 Vue CLI 4.x Ant Design Vue 2.0 搭建后台管理系统 Ant Design Vue 2.0 npm i --save ant- ...