Handler学习小结,算是搞清楚了,得记下来
Handler主要用于异步消息的处理:当发送一个消息之后,首先进入一个消息队列,发送消息的函数即可返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理。这种机制通常用来处理相对好是比较长的操作。(就如post方法是讲Runnable对象添加到主线程中,通俗的说:这里的代码中主要用Handler通知主线程,在主线程中处理异步结果,当线程中耗时任务完成后,例如数据准备,就通知主线程更新(如:更新UI),Handler的hand)
Handler
常用方法:
post(Runnable,long)
postDelayed(Runnable,long);
sendEmptyMessage(int What);
sendMessage(Message);
sendMessageAtTime(Message,long);
sendMessageDelayed(Message,long);
以上post方法允许你安排一个Runnable对象到主线程队列
中,
sendMessage 方法,允许你安排一个带数据的Message对象到队列中,等待更新
package com.handler.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Handler1Activity extends Activity {
private Button button = null;
private TextView textview = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
textview = (TextView) findViewById(R.id.textview);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Thread(thread).start();
try {
Thread.sleep(2000);
Log.i("Handler1Activity", "主线程");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==1){
textview.setText("处理完成");
System.out.println("handler"+Thread.currentThread().getId());
}
}
};
private Thread thread = new Thread(){
@Override
public void run() {
//这里处理异步消息
Log.i("Handler1Activity", Thread.currentThread().getId()+"异步处理");
handler.sendEmptyMessage(1);
}
};
}
这里的
System.out.println("handler"+Thread.currentThread().getId());//handler1
分享到:
相关推荐
Handler是Android系统中用于线程间通信的重要工具,与Message、Looper和MessageQueue共同构建了Android的消息机制。每个线程最多只能拥有一个Looper和一个MessageQueue。在同一个线程中,即使存在多个Handler,...
Android 中 Handler 的使用方法和总结 Handler 是 Android 中的一种非常重要的组件,它起到了十分重要的作用。Handler 主要用于异步消息的处理,当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回...
Android的Handler使用方法总结,不错的文档,跟大家分享分享
总结来说,Handler是Android中实现线程间通信的重要机制,它在Fragment和Activity的交互中扮演着关键角色。正确理解和使用Handler能帮助开发者构建高效、稳定的Android应用程序。在实际开发中,还应结合其他通信方式...
以前刚接触的Handler的时候,感觉总是很困惑,对Handler原理也是一知半解,现在对Handler知识点总结一下,写了一个Demo,供参考。http://blog.csdn.net/yalinfendou博客中有详细介绍……
`Handler`用法的整理总结主要包括以下几个关键点: 1. **主线程与消息循环**: Android应用程序的主线程(UI线程)有一个内部的消息循环机制,由`Looper`类提供。当应用启动时,主线程会自动创建一个`Looper`实例...
分享一份teamcenter流程设计常用handler处理程序的使用总结及参数设置示例,希望能帮到大家!
android handler总结,总结handler的工作机制,以及和looper的区别
Title: Android Handler 深入理解与应用 在Android开发中,Handler机制是处理异步消息传递的关键组件,主要用于在不同的线程之间进行通信,尤其是主线程与工作线程之间的交互。当我们面临需要长时间运行的任务,如...
总结起来,一个Activity中的多个Handler提供了灵活的异步处理能力,每个Handler可以独立处理不同类型的事件。理解Handler、Looper和Message之间的关系对于优化Android应用的性能和避免潜在问题至关重要。在实际开发...
在Android开发中,Handler、Looper和MessageQueue是用于实现线程间通信的关键组件,它们共同构建了一个消息处理机制。理解这三个概念以及它们之间的关系对于优化应用程序的性能和响应性至关重要。 Handler(处理器...
总结起来,Handler是Android中进行线程间通信的重要工具,合理使用它可以有效地提升应用的性能和用户体验。在实际开发中,应结合使用Handler、Looper和Thread,以实现高效的多线程编程。在后续章节,我们将更深入地...
总结,`Activity`中的多个`Handler`处理机制是Android应用程序中多线程通信的重要实践。通过合理设计和使用多个`Handler`,我们可以更灵活地组织业务逻辑,同时需要确保避免内存泄漏和正确处理线程安全问题。理解和...
总结来说,`Handler`是Android异步编程的关键工具,它使得开发者能够在不阻塞主线程的情况下,安全地进行UI更新和其他操作。理解并熟练运用`Handler`,对于提升Android应用的性能和用户体验至关重要。
总结起来,Android的Handler消息处理机制是实现线程间通信和异步任务处理的核心工具,它确保了对UI的修改总是在正确的线程(主线程)中进行,避免了因不恰当的线程操作导致的应用程序崩溃。理解和熟练掌握这一机制,...
总结来说,Handler机制是Android中实现多线程通信的重要手段,通过理解其内部实现原理,开发者可以更好地利用这一工具,优化应用程序的性能和用户体验。在编程实践中,深入理解Handler、Looper和MessageQueue之间的...
总结一下,Handler、Looper和Message三者共同构成了Android的异步消息处理机制。Handler负责发送消息和处理回调,Looper负责消息循环,Message用于传递数据。正确理解和使用这些组件,可以帮助你高效地管理Android...
在Android开发中,`Handler...总结来说,`Handler`是Android中实现线程间通信的关键工具,通过`Message`和`Looper`协同工作,确保了UI线程的安全更新。理解其工作原理并合理使用,能有效提升应用程序的性能和用户体验。
总结来说,Android的Handler机制涉及四个主要组件:`Handler`、`Looper`、`MessageQueue`和`Message`。它们共同协作,实现了线程间的数据传递和异步任务执行,尤其在UI更新方面起到了关键作用。通过自定义这些组件,...
总结起来,`Android Handler传值的demo`展示了如何在主线程和工作线程之间通过`Message`对象传递数据,这对于更新UI或者执行耗时操作后通知主线程非常有用。通过熟练掌握`Handler`、`Message`和`Looper`的工作原理,...