`
Que
  • 浏览: 15386 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Handler实现线程消息通信

阅读更多

  在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. */
@Override
public 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() + " ");
}
}
}

 

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics