android实现10ms定时器,Android三种实现定时器的方法

方法一、使用Handler和Thread(线程)实现定时器

package com.xunfang.handerDemo;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.TextView;

public class HanderDemoActivity extends Activity {

TextView tvShow;

private int i = 0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvShow = (TextView) findViewById(R.id.tv_show);

new Thread(new ThreadShow()).start();

}

// handler类接收数据

Handler handler = new Handler() {

public void handleMessage(Message msg) {

if (msg.what == 1) {

tvShow.setText(Integer.toString(i++));

System.out.println("receive....");

}

};

};

// 线程类

class ThreadShow implements Runnable {

@Override

public void run() {

while (true) {

try {

Thread.sleep(1000);

Message msg = new Message();

msg.what = 1;

handler.sendMessage(msg);

System.out.println("send...");

} catch (Exception e) {

e.printStackTrace();

System.out.println("thread error...");

}

}

}

}

}

方法二、使用Handler类自带的postDelyed实现定时器

package com.xunfang.handerDemo;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.widget.TextView;

public class HanderDemoActivity extends Activity {

TextView tvShow;

private int i = 0;

private int TIME = 1000;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvShow = (TextView) findViewById(R.id.tv_show);

handler.postDelayed(runnable, TIME); //每隔1s执行

}

Handler handler = new Handler();

Runnable runnable = new Runnable() {

@Override

public void run() {

// handler自带方法实现定时器

try {

handler.postDelayed(this, TIME);

tvShow.setText(Integer.toString(i++));

System.out.println("do...");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("exception...");

}

}

};

}

方法三、使用Handler、Timer和TimerTask三个Android类实现定时器

package com.xunfang.handerDemo;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.TextView;

public class HanderDemoActivity extends Activity {

TextView tvShow;

private int i = 0;

private int TIME = 1000;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvShow = (TextView) findViewById(R.id.tv_show);

timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行

}

Handler handler = new Handler() {

public void handleMessage(Message msg) {

if (msg.what == 1) {

tvShow.setText(Integer.toString(i++));

}

super.handleMessage(msg);

};

};

Timer timer = new Timer();

TimerTask task = new TimerTask() {

@Override

public void run() {

// 发送消息

Message message = new Message();

message.what = 1;

handler.sendMessage(message);

}

};

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot设置默认值_spring boot jpa存储数据的默认值为java的默认值

问题描述使用jpa的save方法保存数据后返回的实体类为java数据类型的默认值问题出现的环境背景及自己尝试过哪些方法环境背景: 用户新增功能,调用新增接口后根据返回对象的id去查询等级表的等级.尝试方法:最开始返回的是null,但是数据库的字段默认值设置的是1,后来实体类加上Dyn…

Aruba与中国电信国际有限公司达成战略合作 助力中国企业扬帆出海

2022年1月12日,慧与科技公司 (NYSE: HPE) 旗下Aruba日前宣布,与中国电信国际有限公司(CTG)签署MSP(托管服务运营商)战略合作伙伴协议,Aruba的产品将纳入中国电信国际有限公司的主营产品线。协议…

模仿Spring实现一个类管理容器

简介: 项目的初衷是独立作出一个成熟的有特色的IOC容器,但由于过程参考Spring太多,而且也无法作出太多改进,于是目的变为以此项目作为理解Spring的一个跳板,与网上的一些模仿Spring的框架不同,本项目主要是针对注解形式 概述 项目的初衷是独立作出一个成熟的有特色…

nginx python cgi_Python的CGIHTTPServer交互实现详解

介绍对于服务器后端开发者而言,有时候需要把自己的一些服务直接暴露给PM或者其他RD使用,这个时候需要搭建一套web服务可以和前端用户做简单交互,按照最常规的做法,一般是用Apache或者Nginx作为webserver后端使用cgi或者fcgi程序或…

湖仓一体化的路,很多人都只走了一半

2022已至,如果回看2021,这一年无疑是数据的价值进一步体现的一年。数据应用场景不断丰富,从工业、交通、金融到制造,几乎无处不在。当然,数据价值的迅速提升也给开发者和相关企业带来了新的问题。数据量的爆发让存储成…

学术顶会再突破!计算平台MaxCompute论文入选国际顶会VLDB 2021

简介: VLDB 2021上,阿里云计算平台MaxCompute参与的论文入选,核心分布式调度执行引擎Fangorn、基于TVR Cost模型的通用增量计算优化器框架Tempura等分别被Industry Track、Research Track录取。 一、顶会概览 VLDB 2021上,阿里云…

linux从新手到高手,1.3 养成良好的Linux操作习惯免费阅读_循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用免费全文_百度阅读...

看出点玄机了吗?在上例中,其实“/etc/*”就代表了/etc目录下的所有文件以及子目录,而这刚好是zip命令“-r”选项完成的功能。5)将/opt/etc.zip压缩文件全部解压到/etc目录下,除了etc/inittab文件之外,并且在解压过程中…

技术干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径

简介: 全链路压测方案下,非加密场景下至少有 70% 的性能提升,加密场景下 10%的性能提升,并在 MGS 扩容完成后可实现大幅的性能提升,调优的结果远超预期。 业务背景 随着移动开发行业的步入存量时代,App 整…

python二叉树去重_python二叉树学习分享

介绍:树形结构是应用相当广泛的一种非线性结构,建立与应用大多使用链表来处理,当然也可用连续的列表来实现常见概念:满二叉树:如果树高位H,树的结点总数为2*H-1,H>0,称为满二叉树完全二叉树&…

投稿指南 | 云计算领域最前沿资讯、技术,期待您的专业解读!

我们是谁?CSDN云计算是CSDN旗下官方账号,提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智能算法等相关云计算观点、云计算技术、云计算平台、云计算实践、云计算产业咨询等服务。内容平台方面,我们的目标读者主要…

DataWorks 功能实践速览03期 — 生产开发环境隔离

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 往期回顾: DataWorks 功能实践速览01期——数据同步解决方案:为您介绍不同场景下可选的数据同步方案。DataWorks 功…

鸿蒙手表esim,鸿蒙手表终于来了!或将支持 eSIM,实现独立通话

原标题:鸿蒙手表终于来了!或将支持 eSIM,实现独立通话根据此前的爆料消息,华为将于 6 月份带来与鸿蒙相关的产品发布会,备受瞩目的平板、手表等新品也将亮相。临近产品发布,华为官方也开始了新品的预热。今…

Pull or Push?监控系统如何选型

简介: 对于建设一套公司内部使用的监控系统平台,相对来说可选的方案还是非常多的,无论是用开源方案自建还是使用商业的SaaS化产品,都有比较多的可选项。但无论是开源方案还是商业的SaaS产品,真正实施起来都需要考虑如何…

k8s 集群居然可以图形化安装了?

作者 | 小碗汤来源 | 我的小碗汤今天分享一个可以图形化搭建k8s集群的项目,不妨试一试~本项目是基于 Kubespray 提供图形化的 K8S 集群离线安装、维护工具。Kubespray:https://github.com/kubernetes-sigs/kubesprayKuboard-SprayKuboard-Spray 是一款可…

poi excel导入 判断合并单元格_Excel合并单元格,你需要知道的那些事

合并单元格,是我们经常使用的一个功能。借助合并单元格功能,我们可以制作跨列表头,可以对数据进行显示上的分类,使数据看起来更加清晰明了,让我们的Excel表格看起来更加专业。找到菜单栏的合并单元格功能,我…

当设计模式遇上 Hooks

简介: 数据结构与设计模式能够指导我们在开发复杂系统中寻得一条清晰的道路,既然都说 Hooks 难以维护,那就尝试让「神」来拯救这混乱的局面。对于「设计模式是否有助于我们写出更优雅的 Hooks 」这个问题,看完本文,相信…

mac 电脑android环境变量设置,mac上Android环境变量配置

1.AndroidSDK路径查看(1)AndroidStudio:菜单栏AndroidStudio > Preferences > Appearences&Behavior > System Settins > Android SDK tab中的SDK Location。(2)Eclipse:菜单栏Eclipse > Preferences > Android tab中的SDK Location2.环境变量配置&#…

PostgreSQL数据目录深度揭秘

简介: PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS),被业界誉为“先进的开源数据库”,支持NoSQL数据类型,主要面向企业复杂查询SQL的OLTP业务场景,提供…

深入浅出 Spring 架构设计

作者 | 三太子敖丙来源 | 敖丙前言为什么需要Spring? 什么是Spring?对于这样的问题,大部分人都是处于一种朦朦胧胧的状态,说的出来,但又不是完全说的出来,今天我们就以架构设计的角度尝试解开Spring的神秘面纱。本篇文章以由浅入…

海云健康:上云为10万家药店带去了什么价值?

“全国每5个人里,就有1个正在接受海云健康系统提供的服务。” 在海云健康(以下简称“海云”)的系统后台上,每一分钟就有10万笔的买药订单涌动。也许很多人没有听过海云健康的名字,但当他们走进社区药店时,已经在享受海云的“存健康”药店会员管理系统提供的服务。 海云创办于…