主线程和子线程的通讯之主线程用bundle发送数据到子线程
2012-12-06 21:45
246 查看
package com.wangcan;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("当前线程的id是:"+Thread.currentThread().getId());
System.out.println("当前线程的名称是:"+Thread.currentThread().getName());
HandlerThread htThread=new HandlerThread("myht");
htThread.start();
Handler mHandler=new Handler(htThread.getLooper()){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
//super.handleMessage(msg);
Bundle b2= msg.getData();
int age= b2.getInt("age");
String name = b2.getString("name");
Log.d("TAG", "age:" + age + ", name:" + name);
Log.d("TAG", "handler-->" + Thread.currentThread().getId());
Log.d("TAG", "handleMessage");
}
};
Message msg = mHandler.obtainMessage();
//将msg发送到目标对象,就是生成该msg的Handler对象
Bundle b = new Bundle();//使用Bundle来传递数据
b.putInt("age", 20);
b.putString("name", "John");
msg.setData(b);
msg.sendToTarget();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("当前线程的id是:"+Thread.currentThread().getId());
System.out.println("当前线程的名称是:"+Thread.currentThread().getName());
HandlerThread htThread=new HandlerThread("myht");
htThread.start();
Handler mHandler=new Handler(htThread.getLooper()){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
//super.handleMessage(msg);
Bundle b2= msg.getData();
int age= b2.getInt("age");
String name = b2.getString("name");
Log.d("TAG", "age:" + age + ", name:" + name);
Log.d("TAG", "handler-->" + Thread.currentThread().getId());
Log.d("TAG", "handleMessage");
}
};
Message msg = mHandler.obtainMessage();
//将msg发送到目标对象,就是生成该msg的Handler对象
Bundle b = new Bundle();//使用Bundle来传递数据
b.putInt("age", 20);
b.putString("name", "John");
msg.setData(b);
msg.sendToTarget();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
相关文章推荐
- 主线程和子线程通讯,主线程用bundle发送数据到子线程
- 主线程和子线程的通讯之主线程用bundle发送数据到子线程
- 15/9/9/Handler主线程和子线程之间的通讯/AsyncTask
- Android串口通讯,在线程里一直监听是否有消息发来,接收到消息到runOnUiThread处理跳转页面,页面跳转关闭之后,在发送消息尽然还会执行在打开页面?
- 在C#中主线程和子线程如何实现互相传递数据
- Android笔记(三十二) Android中线程之间的通信(四)主线程给子线程发送消息
- 在C#中主线程和子线程如何实现互相传递数据
- Android Wear开发 - 数据通讯 - 第二节 : 数据的发送与接收
- 关于android中主线程和子线程间的相互通讯
- 老罗Handler(22)各种方式发送handler以及发送更多类型数据给主线程
- vc如何自定义消息与在线程中向主窗体控件发送数据
- 在C#中主线程和子线程如何实现互相传递数据
- dvsdk encode 中video线程向writer线程发送的264数据类型及其格式
- 3.1.14多线程通讯(实战:交叉备份数据)
- 有主线程发送message给子线程
- (原)Android在子线程用handler发送的消息,主线程是怎么loop到的?
- [ACE程序员教程笔记]ACE_Connector使用一个连接多个线程发送数据
- android 子线程通过bundle、handler.sendMessage(message)向主线程传输多个类型数据,包括list<Map<String,Object>>
- Socket客户端和服务端通讯 要求客户端发送数据后回显同样数据
- 主线程与子线程之间通讯, 子线程与子线程之间的通讯