首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

在自定义thread中handler.sendMessage()执行两次?该如何解决

2012-03-17 
在自定义thread中handler.sendMessage()执行两次?比如:boolean flagturenew thread(){public void run()

在自定义thread中handler.sendMessage()执行两次?
比如:
boolean flag=ture;
new thread(){
public void run(){
  if(flag){
  activity.handler.sendMessage(message);
  }
}
}
然后我在activity中创建的这个handler 
  handler=new Handler(new Handler.Callback() {
  @Override
  public boolean handleMessage(Message msg){
  disposeMessage(msg);
  return true;
  }
  });

public void disposeMessage(Message msg){
  flag=true;
}

为什么activity.handler.sendMessage(message);会执行两次? 


[解决办法]
如果线程没被重建,不应该是两次,你怎么看到是执行了两次呢?
[解决办法]
两个线程啊,时间片转换不是很准确,猜测
[解决办法]
public static void printStack() {
try {
throws(new Exception()) {
}
catch (Exception e) {
e.printStactTrace()
}
}

把上面的函数放在sendMessage处,看看两次栈信息,再分析怎么回事

热点排行