`
rayln
  • 浏览: 434393 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Handler多线程一

 
阅读更多
例子:
public class HandlerActivity extends Activity {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button b1 = (Button)findViewById(R.id.button1);
        Button b2 = (Button)findViewById(R.id.button2);
        b1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				//立即把线程加入消息队列中
				handler.post(r);
			}
		});
        b2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				//停止线程
				handler.removeCallbacks(r);
			}
		});
      }
      Handler handler = new Handler();
/**
     *该方法的内部类将在handler.sendMessage(msg)后执行
         Handler handler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			System.out.println("msg:"+msg.arg1);
		}
    	};
    */
      Runnable r = new Runnable() {
		@Override
		public void run() {
			System.out.println("sysout Thread");
			//得到一个消息对象,Message类是有Android系统
			Message msg = handler.obtainMessage();
			//将msg对象arg1参数设置为122,用arg1和arg2传递消息
			//优点是系统资源消耗较小
			msg.arg1 = 122;
			//将消息加入到另外一个消息队列中去
			handler.sendMessage(msg);
			//3000毫秒后加入线程到消息队列中
			handler.postDelayed(r, 3000);
		}
	  };
}

PS:Handler有两个消息队列,一个是post线程队列,另一个是message消息队列,两个队列的方法是异步的。handler匿名内部类方法是在handler.sendMessage(msg)后执行。
Thread.currentThread().getId()和Thread.currentThread().getName()是得到当前线程Id和Name的方法
Handler.post方法和Runnable是处于同一个线程(重要!!)
分享到:
评论

相关推荐

    Handler多线程处理简单实例

    本实例将深入探讨`Handler`如何与多线程协同工作,帮助开发者更好地理解和运用。 `Handler`类在Android中扮演着消息传递的角色,它主要负责在不同的线程之间发送和处理消息。通常,主线程(UI线程)用于处理用户...

    利用Handler在线程之间传递数据

    这个demo介绍了通过Handler在线程之间传递消息,demo中一个三个线程,主线程,发送消息的分线程,接收消息的分线程。发送消息的分线程会通知主线程更改标签文字,同时会通知接收消息的分线程更改进度条的进度。

    Android利用handler在线程之间传递代码

    总结来说,Handler机制是Android多线程编程的关键工具之一,它使得开发者能够方便地在线程间传递信息,实现异步处理,确保UI线程不被阻塞,提升用户体验。熟练掌握Handler的使用,对任何Android开发者都至关重要。

    android多线程handler/message机制详解

    Android 多线程Handler/Message机制详解 Android 多线程机制是 Android 应用程序中最重要的组件之一,它允许应用程序在后台执行一些操作,而不影响用户的交互体验。在 Android 中,多线程机制是基于 Handler 和 ...

    Android 多线程:使用Thread和Handler

    本篇文章将详细探讨如何在Android中使用Thread和Handler实现多线程通信,确保非UI线程能够安全地更新UI。 首先,Android应用程序的主线程(UI线程)主要负责管理用户界面,处理用户交互事件。主线程不允许执行长...

    android 多线程 looper handler

    Android 多线程 Looper Handler Android 操作系统中,多线程是一种常见的编程技术,通过使用多线程,可以提高应用程序的响应速度和效率。在 Android 中,多线程可以分为两种:有消息循环的线程和没有消息循环的线程...

    Handler 消息机制 多线程 应用场景

    Handler消息机制是Android系统中处理多线程通信的核心组件,它在应用程序开发中扮演着重要角色。通过Handler、Looper和Message三者之间的协同工作,开发者可以在主线程与子线程之间进行安全的数据传递和任务调度。 ...

    andriod多线程通信handler方法

    - `app` 文件夹包含了应用的源代码和资源文件,其中可能有实现Handler多线程通信的具体代码。 以上就是关于"andriod多线程通信handler方法"的详细解释,以及与之相关的Android项目结构。通过理解并熟练运用Handler...

    Android中多线程的Handler原理

    Android中多线程的Handler的工作原理,其中涉及到MessageQueue和Looper。详情可以参见博客:http://www.cnblogs.com/plokmju/p/android_Looper.html

    Handler与Android多线程详解

    下面是一段大家都比较熟悉的代码: 代码如下:Handler ...上述代码中的handler并没有调用线程myThread的start()方法,而是直接调用了run()方法,这也就意味着实际上并没有创建一个新的线程,只是在当前线程中调用run()

    handler线程

    2. **线程安全**:在多线程环境下使用 `Handler` 时要注意线程安全问题,确保消息的发送和处理不会出现错误。 3. **性能优化**:合理设计 `Handler` 的使用方式可以帮助提高应用程序的性能,比如减少不必要的消息...

    Android多线程文件上传

    在Android应用开发中,文件上传是一项常见的任务,尤其是在处理大文件或者需要提高用户交互体验时,多线程技术显得尤为重要。本主题聚焦于"Android多线程文件上传",我们将探讨如何利用多线程技术来优化文件上传过程...

    Android Handler 线程 示例代码

    在Android开发中,`Handler`、`Thread`、`Toast`、`消息队列`以及`线程`是实现UI交互和异步处理的关键概念。本文将深入探讨这些概念,并结合给定的"Android Handler 线程 示例代码"进行详细讲解。 首先,我们来看`...

    Handler实现线程

    总之,`Handler`机制是Android中非常重要的多线程通信方式,它使得我们可以灵活地在不同线程之间传递消息,实现异步操作,提高应用的性能和用户体验。在实际项目中,正确地理解和运用`Handler`、`Looper`和`Message`...

    Android线程操作 handler demo

    此时,Android提供了多种多线程解决方案,其中之一就是Handler机制。本篇将详细讲解如何在Android中使用Handler进行线程间通信。 Handler是Android中处理消息和回调的核心组件,它与Looper和Message紧密配合,实现...

    android——多线程

    标题"android——多线程"和描述"android——Handler与多线程应用范例"暗示我们将深入探讨如何在Android中使用Handler来管理多线程。 Android系统默认运行在一个单线程环境中,即主线程,也被称为UI线程。主线程主要...

    Android多线程及异步任务消息处理机制 一 Handler的使用

    在Android开发中,多线程和异步任务处理机制是至关重要的,特别是在处理耗时操作如网络请求、数据库操作或大型数据计算时。本篇博文将聚焦于Android中的`Handler`机制,它是Android异步消息处理的核心组件。通过`...

    使用Handler.post()对线程进行管理,实现同步

    这里使用post()将多个线程提交到Handler的MessageQueue里面,这样线程就会顺序执行,这样任务所操作的对象在同一时间里就不会有多个线程同时操作了,也就实现了同步操作了。同时注意,队列是同步操作的一个重要手段...

    Android中的Handler与多线程应用实例

    Handler在多线程中的作用就是连接后台线程和主线程,让它们能够安全地交换数据。 1. Handler的基本原理: Handler的核心是消息队列和循环器(Looper)。每个线程都有一个Looper,Looper负责从消息队列中取出消息并...

Global site tag (gtag.js) - Google Analytics