对于Handler我不想说那些理论的机制问题。这里只介绍几种我用到的方法,仅供有需要的朋友参考:Handler与UI界面交互操作,可避免主线程做过多耗时操作引发的问题。
1)按计划发送消息或执行某个Runnanble(使用POST方法);
2)从其他线程中发送来的消息放入消息队列中,避免线程冲突(常见于更新UI线程)
接收消息:Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATA_WAT:
updataView();
break;
} }; };
发送消息:post(Runnable) postAtTime(Runnable,long)
postDelayed(Runnable,long)sendEmptyMessage(int)
sendMessage(Message) sendMessageAtTime(Message,long)
sendMessageDelayed(Message,long)
1) Message msg = new Message();
msg.wat = UPDATA_WAT;
handler.sendMessage(msg);
2) Message msg = handler.obtainMessage(UPDATA_WAT);可添加其他参数
handler.sendMessage(msg);
传递数据:Message msg = handler.obtainMessage();
Bundle b = new Bundle();
b.putInt("age", 20);
b.putString("name", "Lily");
msg.setData(b);
msg.sendToTarget();
public void handleMessage(Message msg) {
Bundle b = msg.getData();
int age = b.getInt("age");
String name = b.getString("name");
未完待续……
分享到:
相关推荐
分享一份teamcenter流程设计常用handler处理程序的使用总结及参数设置示例,希望能帮到大家!
Handler提供了多种发送消息的方法,如`sendEmptyMessage(int what)`、`sendMessage(Message msg)`等。`what`通常是标识消息类型的整数,`msg`包含了消息的具体内容。例如,你可以这样发送一个消息: ```java ...
总的来说,理解Handler的运行机制对于Android开发者来说至关重要,因为它是我们进行多线程编程,特别是涉及到UI更新时的常用工具。通过熟练掌握Handler,开发者可以有效地管理线程,保证应用的流畅性和响应性。
我们可以在一个线程中创建Handler对象,然后在另一个线程中通过`Handler.sendMessage(Message)`方法发送消息。Message对象包含我们要传递的数据和处理消息的方法(由`what`标识)。当Message到达Handler时,会根据`...
通过post()或sendMessage()方法发送Message,Looper会在适当的时间将其交付给关联的Handler进行处理。这对于避免在主线程执行耗时操作,保持UI响应性至关重要。 二、Activity间的通信方式 1. Intent:最常用的方式...
【dbUtils常用结果集[BeanHandler]、[BeanListHandler]、[MapHandler]、[MapListHandler,Object>]查询结果转Json串】
在Android开发中,ViewPager是一种非常常用的组件,常用于实现页面滑动效果,比如常见的轮播图。本项目“ViewPager和Handler结合使用实现轮播图”就是利用这两种关键元素来创建一个自动滚动的图片展示功能,并且增加...
在Android开发中,`ViewPager` 是一个非常常用的组件,它允许用户通过左右滑动来浏览多个页面。结合`Handler`,我们可以实现一个功能强大的图片自动轮播效果,这在许多应用的启动界面、广告横幅或者任何需要展示多张...
1. `Handler`:创建一个`Handler`实例并重写`handleMessage(Message msg)`方法,这个方法将在主线程中执行。然后,你可以使用`sendMessage(Message msg)`或`post(Runnable r)`发送消息或Runnable对象。例如: ```...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析和生成,成为了服务器和客户端之间数据交互的常用格式。 Gson是Google提供的一个Java库,它能够将Java...
Thread的常用方法: * start():启动线程 * run():线程的执行体 * stop():停止线程 * sleep():线程睡眠 * interrupt():线程中断 Thread的常用字段: * Thread priority:线程优先级 * Thread state:线程状态...
MySQL是常用的开源关系型数据库,用于存储和管理应用程序的数据。JSP则是Java的动态网页技术,可以结合Java代码生成动态HTML,实现服务器端的逻辑处理。 【webproject】通常指的是一个完整的Web应用项目,可能包括...
在Android开发中,倒计时(CountDownTimer)是一个常用的功能,它经常被用于各种应用场景,如定时提醒、倒计时计时器等。在这个压缩包中,开发者提供了一个基于`Timer`和`Handler`实现的倒计时器示例,它支持暂停、...
在Android应用开发中,Handler是一种常用的线程通信机制,它允许开发者在主线程中处理来自其他线程的消息,实现UI的更新。本示例中,我们关注的是如何使用Handler进行Activity之间的数据传递,并且在返回时带回修改...
除了基本的TypeHandler,Mybatis还提供了一些高级特性,如`ResultMap`中的`typeHandler`属性,可以针对特定列指定TypeHandler,以及`@TypeAlias`注解,用于简化类型别名的使用。 在实际项目中,我们可能会遇到需要...
在Android开发中,`Handler`和`AsyncTask`是两种常用的方式来处理应用程序中的异步操作。它们都是为了在主线程和工作线程之间传递数据、更新UI,避免阻塞主线程,提供良好的用户体验。让我们深入了解一下这两个关键...
在使用Handler处理消息时,确保在Activity的`onDestroy()`方法中调用`removeCallbacksAndMessages(null)`来移除所有待处理的消息和回调,这有助于防止内存泄漏和不必要的资源消耗。 另外,当涉及到`RecyclerView`时...
本文档详细介绍了Wabacus框架中一些常用的客户端接口方法,这些方法可以帮助开发者实现用户界面的动态交互和数据处理等功能。 1. 客户端接口方法概述 Wabacus框架的客户端接口方法主要由一系列的JavaScript函数组成...
在Android应用开发中,ViewPager是一种常用的组件,它允许用户通过左右滑动来浏览多个页面,常用于实现Tab切换、图片轮播等效果。本教程将详细介绍如何利用ViewPager实现手动切换,并结合Timer和Handler来实现自动...