message.what设为-1,sendmessage完之后,用一个log获取what值是对的,sleep(300)后再获取what值就变成0了……sleep前再加几个log都是-1……
sendmessage之后我也再没动过what值,what=-1没有操作,而且sendmessage后下一行就是log
有大佬知道是怎么回事吗上传照片一直失败……

解决方案 »

  1.   

    这么神奇 你断点调试下 看你messge.what值在哪变的
      

  2.   

    而且sendmessage后下一行就是log?
    sendmessage后不是在handlemessage方法里打印?
      

  3.   

    你好,我把照片放在blink里了,大佬看一下吧
      

  4.   

    你好,我把照片放在blink里了,大佬看一下吧
      

  5.   

    你好,我把照片放在blink里了,大佬看一下吧
    你sendMessage后为什么还要打印这个值?因为Message是可复用的,你短暂暂停后,可能这个Message对象就被回收复用了。正常都是你要sendMessage的时候重新获取一个Message对象。
      

  6.   

    https://www.jianshu.com/p/219701879fe4
      

  7.   

    你好,我把照片放在blink里了,大佬看一下吧
    你sendMessage后为什么还要打印这个值?因为Message是可复用的,你短暂暂停后,可能这个Message对象就被回收复用了。正常都是你要sendMessage的时候重新获取一个Message对象。
    没有再对message赋值也会被回收吗(T▽T)因为我在循环最后还要判定message的值,难道我在send和判定之间不能放sleep了吗?我现在另设了一个变量倒是解决这个问题了(T▽T)但是感觉好神奇
      

  8.   

    难道不是在 handleMessage 里判断what值吗?
     Handler myHandler = new Handler() {
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case 1:
                      
                        break;
                }
            }
        };
      

  9.   

    那里的是对的,但是后面还要用到what,值就不对了
      

  10.   

    那里的是对的,但是后面还要用到what,值就不对了它回收了,变成默认值0了,你自己建个变量保存