android 定时器实例,Android定时器和Handler用法实例分析

android 定时器实例,Android定时器和Handler用法实例分析本文实例讲述了android定时器和handler用法。分享给大家供大家参考。具体分析如下:一、环境:主机:win8开发环境:androidstudio二、定时器使用示例:初始化://定时器privatetimertimer_work=newtimer();//工作间隔,单位:msprivatefinalintinterval_work=5000;创建定时器线程:/***构…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文实例讲述了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程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160028.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 睿智的目标检测30——Pytorch搭建YoloV4目标检测平台

    睿智的目标检测30——Pytorch搭建YoloV4目标检测平台睿智的目标检测30——Pytorch搭建YoloV4目标检测平台学习前言什么是YOLOV4代码下载YOLOV4改进的部分(不完全)YOLOV4结构解析1、主干特征提取网络Backbone2、特征金字塔3、YoloHead利用获得到的特征进行预测4、预测结果的解码5、在原图上进行绘制YOLOV4的训练1、YOLOV4的改进训练技巧a)、Mosaic数据增强b)、LabelSmoothing平滑c)、CIOUd)、学习率余弦退火衰减2、loss组成a)、计算loss所需参数b)、y_pre是什么c)、y_tr

    2022年6月19日
    39
  • leetcode546_leetcode 5

    leetcode546_leetcode 5DescriptionGivenacollectionofdistinctintegers,returnallpossiblepermutations.ExampleInput:[1,2,3]Output:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]…

    2022年9月20日
    6
  • pycharm的scrapy框架-断点调试「建议收藏」

    pycharm的scrapy框架-断点调试「建议收藏」在文件根目录,也就是settings.py的上级目录,scrapy.cfg的同级目录,创建main.py:fromscrapy.cmdlineimportexecuteimportosimportsysif__name__==’__main__’:sys.path.append(os.path.dirname(os.path.abspath(__file__)))execute([‘scrapy’,’crawl’,’你的spider的name’])点

    2022年5月11日
    44
  • from django.db import models_django项目部署

    from django.db import models_django项目部署前言APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块请求模块:request对象源码入口APIView类中di

    2022年8月7日
    6
  • mysql登录出现1045错误修改方法[通俗易懂]

    mysql登录出现1045错误修改方法[通俗易懂]在cmd中输入mysql-uroot-p出现1045错误如下:ERROR1045(28000):Accessdeniedforuser’root’@’localhost'(usingpassword)解决方法:1.先找到mysqlbin目录下的my.ini文件,在[mysql]下面加上skip-grant-tables用于跳过密码2.重启服务器net

    2022年6月11日
    52
  • MySQL数据类型DECIMAL用法

    MySQL数据类型DECIMAL用法MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。要定义数据类型为DECIMAL的列,请使用

    2022年7月1日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号