Android Timer计时器的使用-Timer.schedule
时间:2019-01-10
本文章向大家介绍Android Timer计时器的使用-Timer.schedule,主要包括Android Timer计时器的使用-Timer.schedule使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
计时器即使可以相当于点击按钮引发事件,但是不需要用户执行任何操作,可以自动出发事件。
使用计时器的过程如下:
case R.id.button_timer://一个button,点击改button后创建一个Timer计时器,后面就不用点击按钮,自动执行run方法33遍,33遍是写在run方法中的。
Timer t=new Timer();//创建Timer对象
player = MediaPlayer.create(this,R.raw.ultragesture);//业务代码,创建MediaPlayer对象
myTaskStart mytaskstart = new myTaskStart();//创建TimerTask对象,Timer要执行的程序写在改类中的run方法中
t.schedule(mytaskstart,5000,7000);//调用Timer.schedule方法使得run中的代码自动重复执行
break;
其中myTaskStart的实现如下:是一个内部类,直接写在MainActivity中就可以了。
class myTaskStart extends TimerTask{
@Override
public void run(){
//开始录音
System.out.println("启动程序");
//count为一个全局变量,该全局变量来控制run的运行次数
if(count<33){
count=count+1;
}
else {
this.cancel();
System.exit(0);
}
//结束使用count控制run的运行次数
//开始更新TextView里面的字符串
textView.post(new Runnable() {
@Override
public void run() {
textView.setText("start"+count);
}
});
//结束更新TextView里面的字符串
player.start();
String fileName = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
audioRecorder.createDefaultAudio(fileName); // status = Status.STATUS_READY;
audioRecorder.startRecord(null);
//等待录音
try {
Thread.sleep(5000);
}
catch (InterruptedException e)
{
Toast.makeText(getApplicationContext(),"异常",Toast.LENGTH_LONG).show();
}
//停止录音
System.out.println("停止录音啊啊啊啊");
audioRecorder.stopRecord();
player.stop();
textView.post(new Runnable() {
@Override
public void run() {
textView.setText("end");
}
});
//在player.stop()后面添加player.prepare(),需要处理异常!
try {
player.prepare();
}
catch (IOException e)
{
System.out.println("player初始化失败!");
}
//结束添加player.prepare
}
}
- 图文并茂详解 SQL JOIN
- 自定义 hadoop MapReduce InputFormat 切分输入文件
- Hadoop MapReduce 二次排序原理及其应用
- MySQL Tips【Updating】
- Meltdown、Spectre攻击---CPU乱序执行和预测执行导致的安全问题
- WordPress 4.6远程代码执行漏洞(CVE-2016-10033)复现环境搭建指南
- 相似文档查找算法之 simHash 简介及其 java 实现
- Hadoop 中利用 mapreduce 读写 mysql 数据
- Android O中对TEE加解密算法的新要求
- storm 原理简介及单机版安装指南
- Python Tips, Tricks, and Hacks
- 英特尔放出Linux微代码以修复Meltdown和Spectre漏洞
- python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域
- Linux SSH密码暴力破解技术及攻防实战
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 服务发现与消费--Eureka与Ribbon的联手出击
- 自我加戏,在自闭的边缘尝试高可用的Eureka
- 视频直播系统源码,图片叠加
- SpringCloud初体验--Hello Eureka
- Android自定义View实现水平带数字百分比进度条
- AndResGuard编译速度优化
- Android自定义带拼音音调Textview
- Android仿音乐播放器带进度的播放暂停按钮
- 一个比较自闭的SpringIOC问题
- 我在大厂写React,学到了什么?
- leetcode(4)寻找正序数组中位数
- jvm源码解析(二)HashMap
- 硬件笔记(23)---- PCB的保护走线
- TabLayout+ViewPager实现切页的示例代码
- jvm源码分析(四)ThreadPoolExecutor