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

所属分类: 软件编程 / Android 阅读数: 362
收藏 0 赞 0 分享

本文实例讲述了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网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多