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

 更新时间:2015年04月21日 09:31:26   作者:jdh99  
这篇文章主要介绍了Android定时器和Handler用法,实例分析了Android中的定时器与Handler相关使用技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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编程之多线程编程实例分析

    android编程之多线程编程实例分析

    这篇文章主要介绍了android编程之多线程编程,实例分析了Android多线程程序设计的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Android仿网易新闻图片详情下滑隐藏效果示例代码

    Android仿网易新闻图片详情下滑隐藏效果示例代码

    这篇文章主要给大家介绍了关于利用Android如何仿网易新闻图片详情下滑隐藏效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Android自定义ViewGroup实现可滚动的横向布局(2)

    Android自定义ViewGroup实现可滚动的横向布局(2)

    这篇文章主要介绍了Android自定义ViewGroup实现可滚动的横向布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android 路径查询具体实现

    Android 路径查询具体实现

    可以通过RasterMap的getDirection()方法来查询路径,和查询地址类似,路径查询的结果也是通过回调函数的方式来通知应用程序的,下面的例子返回南京到北京的路径
    2013-10-10
  • Android实现ImageView图片双击放大及缩小

    Android实现ImageView图片双击放大及缩小

    这篇文章主要介绍了Android实现ImageView图片双击放大及缩小的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Android进阶NestedScroll嵌套滑动机制实现吸顶效果详解

    Android进阶NestedScroll嵌套滑动机制实现吸顶效果详解

    这篇文章主要为大家介绍了Android进阶NestedScroll嵌套滑动机制实现吸顶效果详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Android 操作系统获取Root权限 原理详细解析

    Android 操作系统获取Root权限 原理详细解析

    许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/目录下放置一个可执行文件“su”
    2013-10-10
  • Android自定义View实现自动转圈效果

    Android自定义View实现自动转圈效果

    这篇文章主要为大家详细介绍了Android自定义View实现自动转圈效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android编程实现获得内存剩余大小与总大小的方法

    Android编程实现获得内存剩余大小与总大小的方法

    这篇文章主要介绍了Android编程实现获得内存剩余大小与总大小的方法,涉及Android基于ActivityManager实现内存信息的操作技巧,需要的朋友可以参考下
    2015-12-12
  • Android 圆角边框的实现方式汇总

    Android 圆角边框的实现方式汇总

    这篇文章主要介绍了Android 圆角边框的实现方式汇总的相关资料,需要的朋友可以参考下
    2016-03-03

最新评论