java吧 关注:1,307,620贴子:12,879,947
  • 0回复贴,共1

求教个安卓开发Message的问题

只看楼主收藏回复

class subThread implements Runnable{
@Override
public void run() {
Looper.prepare();//初始化Looper
MainActivity.this.subHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case ToSub:
System.out.println("Main Child Message:"+msg.obj);
Message toMain=MainActivity.this.mainHandler.obtainMessage();//创建消息
toMain.obj="this is a message from Sub";
toMain.what=ToMain;//设置主线程操作的状态码
MainActivity.this.mainHandler.sendMessage(toMain);
break;
}
}
};
Looper.loop();//启动该线程的消息队列
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mymsg= (TextView) findViewById(R.id.msg);
mybut= (Button) findViewById(R.id.start);
this.mainHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case ToMain:
MainActivity.this.mymsg.setText("主线程接受数据是:"+msg.obj.toString());
break;
}
}
};
new Thread(new subThread()).start();//启动子线程
this.mybut.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements View.OnClickListener{
@Override
public void onClick(View view) {
if(MainActivity.this.subHandler!=null){
Message childMsg=MainActivity.this.subHandler.obtainMessage();
childMsg.obj="this is a message from Main";
childMsg.what=ToSub;
MainActivity.this.subHandler.sendMessage(childMsg);
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
MainActivity.this.subHandler.getLooper().quit();
}
}
请问这个handleMessage方法是什么时候发生的


1楼2016-04-13 16:27回复