当前位置: 代码迷 >> Android >> 在自定义thread中handler.sendMessage()执行两次?该如何解决
  详细解决方案

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

热度:384   发布时间:2016-05-01 21:58:38.0
在自定义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处,看看两次栈信息,再分析怎么回事

  相关解决方案