Android定时器和Handler用法实例分析
作者:jdh99 时间:2022-11-09 22:18:08
本文实例讲述了Android定时器和Handler用法。分享给大家供大家参考。具体分析如下:
一、环境:
主机:WIN8
开发环境:Android Studio
二、定时器使用示例:
初始化:
//定时器
private Timer Timer_Work = new Timer();
//工作间隔,单位:ms
private final int INTERVAL_WORK = 5000;
创建定时器线程:
/**
* 构造函数
*/
public Config() {
//生成配置信息
generate_config_info();
//创建定时线程
Timer_Work.schedule(new Task(), INTERVAL_WORK, INTERVAL_WORK);
// 定时任务
}
新建任务:
/**
* 定时器线程定时工作
*/
private class Task extends TimerTask {
@Override
public void run() {
generate_config_info();
}
}
三、定时器和Handler组合工作,更新UI示例(定时器线程不能直接更新UI):
定时器任务:
/**
* 定时器线程定时工作
*/
private class Task extends TimerTask {
@Override
public void run() {
if (get_state() == ENUM_State.FREE)
{
connect("10.58.1.59",8906);
}
if (get_state() == ENUM_State.CONNECT_SUCCESS)
{
login("TianTian","");
}
if (get_state() == ENUM_State.LOGIN_SUCCESS)
{
enter_room(1,"");
}
if (get_state() == ENUM_State.ENTER_ROOM_SUCCESS)
{
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}
}
Handler处理信息:
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what)
{
case 1:
{
System.out.println("sdk打开视频准备");
video(-224);
break;
}
}
super.handleMessage(msg);
}
};
四、Handler和Runnable组合产生线程示例:
延时200ms调用runnable
handler.postDelayed(runnable, 200);
产生线程:
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
int videoBitrate = anychatSDK.QueryUserStateInt(userID, AnyChatDefine.BRAC_USERSTATE_VIDEOBITRATE);
if (videoBitrate > 0)
{
handler.removeCallbacks(runnable);
mOtherView.setBackgroundColor(Color.TRANSPARENT);
}
handler.postDelayed(runnable, 200);
} catch (Exception e) {
e.printStackTrace();
}
}
};
希望本文所述对大家的Android程序设计有所帮助。
标签:Android,定时器,Handler
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android 8.0实现蓝牙遥控器自动配对
2021-08-05 08:24:16
SpringBoot 项目中创建线程池
2023-09-21 22:12:04
Android实现通用筛选栏
2021-10-16 05:31:42
![](https://img.aspxhome.com/file/2023/3/117073_0s.gif)
java设计模式之中介者模式
2022-12-08 09:31:25
![](https://img.aspxhome.com/file/2023/2/113402_0s.jpg)
C语言经典指针笔试题详解
2021-10-23 12:56:39
![](https://img.aspxhome.com/file/2023/3/127493_0s.png)
c# 反射用法及效率对比
2022-06-11 17:50:19
![](https://img.aspxhome.com/file/2023/2/88322_0s.png)
Java SpringBoot Validation用法案例详解
2023-10-21 15:06:49
![](https://img.aspxhome.com/file/2023/3/125213_0s.png)
从Request.Url中获取根网址的简单操作
2022-04-18 04:44:40
Android实现带节点的进度条
2022-01-16 08:58:02
![](https://img.aspxhome.com/file/2023/0/108240_0s.jpg)
flutter 中监听滑动事件
2021-10-05 11:39:00
Spring基于常用AspectJ切点表达式使用介绍
2023-12-08 19:58:37
Android编程实现仿美团或淘宝的多级分类菜单效果示例【附demo源码下载】
2022-09-09 01:38:50
![](https://img.aspxhome.com/file/2023/3/137113_0s.jpg)
elasticsearch集群cluster示例详解
2023-12-11 16:49:27
![](https://img.aspxhome.com/file/2023/3/67003_0s.png)
Java8中接口的新特性使用指南
2023-01-21 15:19:26
基于C#实现乱码视频效果
2022-01-25 14:29:56
![](https://img.aspxhome.com/file/2023/8/98218_0s.png)
Flutter投票组件使用方法详解
2022-05-25 19:07:05
Java实现任务超时处理方法
2023-01-09 14:46:45
![](https://img.aspxhome.com/file/2023/3/66983_0s.png)
Android HorizontalScrollView滑动与ViewPager切换案例详解
2023-06-05 00:48:27
java String类常量池分析及"equals"和"==”区别详细介绍
2021-11-28 01:54:48
Java PreparedStatement用法详解
2023-08-08 20:20:51
![](https://img.aspxhome.com/file/2023/1/58061_0s.png)