比如:
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);会执行两次? 

解决方案 »

  1.   

      就是我在thread线程中,发送一条显示对话框的消息,发送之后,我就想flag=false,暂停thread线程。显示的dialog上有一个按钮,然后点击此按钮时,将其flag打开,当我点击完后,dialog显示,还不到1s有重新弹出来了。然后我打断点到flag处,却发现还调用了一次,当我再次点击完按钮后,就不出现了。不知道什么原因?请您指点下如何解决这个问题?
      

  2.   

    就是我在thread线程中,发送一条显示对话框的消息,发送之后,我就想flag=false,暂停thread线程。显示的dialog上有一个按钮,然后点击此按钮时,将其flag打开,当我点击完后,dialog显示,还不到1s有重新弹出来了。然后我打断点到flag处,却发现还调用了一次,当我再次点击完按钮后,就不出现了。不知道什么原因?请您指点下如何解决这个问题?
      

  3.   

    public static void printStack() {
        try {
            throws(new Exception()) {
        }
        catch (Exception e) {
            e.printStactTrace()
        }
    }把上面的函数放在sendMessage处,看看两次栈信息,再分析怎么回事
      

  4.   

    问题解决了,new handler() 两次。。感谢各位的回复