在android中Handler类通常作为不同线程间通信的手段,既可以实现线程的互斥,也可以实现同步。

下面以一个简单的例子来说明如何实现两个线程间的通信。

import android.app.Activity;

import android.os.Bundle;import android.os.Message;import android.util.Log;import android.os.Handler;public class MyHandler extends Activity {static final String TAG = "Handler";static final int HANDLER_TEST = 1;Handler h = new Handler(){public void handleMessage (Message msg){switch(msg.what){case HANDLER_TEST:Log.d(TAG, "The handler thread id = " + Thread.currentThread().getId() + " ");break;}}};/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(TAG, "The main thread id = " + Thread.currentThread().getId() + " ");new myThread().start();setContentView(R.layout.main)//此处为activity的主线程}class myThread extends Thread{//新创建的线程,通过Handler.sendMessage(Message msg);实现子线程与主线程间通信public void run(){Message msg = new Message();msg.what = HANDLER_TEST;h.sendMessage(msg);Log.d(TAG, "The worker thread id = " + Thread.currentThread().getId() + " ");}}}

通过子线程和主线程间通信实现同步和互斥。

更多相关文章

  1. Android(安卓)使用线程更新UI(附带计时器demo)
  2. Android(安卓)Framework 源码之旅 —— 正识Binder
  3. 【Android游戏开发十五】关于Android(安卓)游戏开发中 OnTouchEv
  4. Android异步处理类AsyncTask
  5. android andbase 线程池
  6. Android(安卓)Fragment与Fragment、Activity通信的方式的总结
  7. android之Can't create handler inside thread that has not cal
  8. Thread、Handler和HandlerThread关系详解
  9. 从J2EE转向Android的第五天-----ProgressDialog

随机推荐

  1. Android(安卓)ContentResolver详解
  2. ArcGIS for Android(安卓)10.2.2 在IDEA
  3. 更改.android目录位置
  4. ( 转)关于Android的nodpi,xhdpi,hdpi,mdp
  5. (2016.5.26更新8.0.1失效问题)Android(安
  6. android用什么表示本机地址
  7. Testing和Instrumentation
  8. 面试之Android五种布局
  9. android 基础学习(5)-----Android(安卓)B
  10. 接触Android