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程序设计有所帮助。

时间: 2024-09-23 13:37:49

Android定时器和Handler用法实例分析的相关文章

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

本文实例讲述了Android定时器和Handler用法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Android Studio 二.定时器使用示例: 初始化: //定时器 private Timer Timer_Work = new Timer(); //工作间隔,单位:ms private final int INTERVAL_WORK = 5000; 创建定时器线程: /** * 构造函数 */ public Config() { //生成配置信息 gene

Android中AsyncTask与handler用法实例分析_Android

本文实例讲述了Android中AsyncTask与handler用法.分享给大家供大家参考,具体如下: 首先,我们得明确下一个概念,什么是UI线程.顾名思义,ui线程就是管理着用户界面的那个线程! android的ui线程操作并不是安全的,并且和用户直接进行界面交互的操作都必须在ui线程中进行才可以.这种模式叫做单线程模式. 我们在单线程模式下编程一定要注意:不要阻塞ui线程.确保只在ui线程中访问ui组件 当我们要执行一个复杂耗时的算法并且最终要将计算结果反映到ui上时,我们会发现,我们根本没

Android中AsyncTask与handler用法实例分析

本文实例讲述了Android中AsyncTask与handler用法.分享给大家供大家参考,具体如下: 首先,我们得明确下一个概念,什么是UI线程.顾名思义,ui线程就是管理着用户界面的那个线程! android的ui线程操作并不是安全的,并且和用户直接进行界面交互的操作都必须在ui线程中进行才可以.这种模式叫做单线程模式. 我们在单线程模式下编程一定要注意:不要阻塞ui线程.确保只在ui线程中访问ui组件 当我们要执行一个复杂耗时的算法并且最终要将计算结果反映到ui上时,我们会发现,我们根本没

Android开发中PopupWindow用法实例分析_Android

本文实例分析了Android开发中PopupWindow用法.分享给大家供大家参考,具体如下: private TextView tv_appmanager_title; private ListView lv_app_manager; private LinearLayout ll_appmanager_loading; private AppManagerProvider provider; private List<AppManagerInfo> infos ; private AppM

Android开发中PopupWindow用法实例分析

本文实例分析了Android开发中PopupWindow用法.分享给大家供大家参考,具体如下: private TextView tv_appmanager_title; private ListView lv_app_manager; private LinearLayout ll_appmanager_loading; private AppManagerProvider provider; private List<AppManagerInfo> infos ; private AppM

Android开发之BroadcastReceiver用法实例分析

  本文实例讲述了Android开发中BroadcastReceiver用法.分享给大家供大家参考.具体分析如下: 在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制. Braodcast Receiver顾名思义就是广播接收器,它和事件处理机制类似,但是事件处理机制是程序组件级别的(比如:按钮的单击事件),而广播事件处理机制是系统级别的.我们可以用Intent来启动一个组件,也可以用sendBroadcast()方法发起一个系统级别的事件广播来传递

Android开发之Sqliteopenhelper用法实例分析_Android

本文实例讲述了Android开发之Sqliteopenhelper用法.分享给大家供大家参考.具体分析如下: 如果在安卓开发中,直接使用Activity中的openOrCreateDatabase(name, mode, factory)会有一系列跟随的问题.比如说数据库升级.更新等. 最好是使用其封装版本:SQLiteOpenHelper 继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个 方法. onCreate(SQLiteDatabase db) : 当数据库被首次

Android开发之BroadcastReceiver用法实例分析_Android

本文实例讲述了Android开发中BroadcastReceiver用法.分享给大家供大家参考.具体分析如下: 在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制. Braodcast Receiver顾名思义就是广播接收器,它和事件处理机制类似,但是事件处理机制是程序组件级别的(比如:按钮的单击事件),而广播事件处理机制是系统级别的.我们可以用Intent来启动一个组件,也可以用sendBroadcast()方法发起一个系统级别的事件广播来传递消息

Android编程之监听器用法实例分析

本文实例讲述了Android编程之监听器用法.分享给大家供大家参考,具体如下: 这里通过监听内容提供者数据变化和监听发送短信进行讲解监听器.如果用户提供者数据发生了变化,监听器立刻就能收到对数据库操作的记录,而监听器是采用通知的机制,如果不采用通知的机制也可以做,那就是不断的查询数据库,这样的话效率就会很低.而采用通知机制的话,当用户向数据库发送一条记录,ContentObserver立刻就能获取到,我们就可以进行处理数据. 监听内容提供者数据的变化 1.在内容提供者中可以通知其他程序数据发生变