解决方案 »

  1.   

    你想要多实时,线程切换都是有代价的,不是你post了它就马上会跑的。
    你这种情况通常的解决方式是:
    搞个FIFO,把数据都放在里面,子线程往里丢数据,发消息给主线程只是让它来取数据。
      

  2.   

    handler这个也相当于一个线程队列的,需要排队处理的,你这样一下很多的话,肯定有延迟
      

  3.   


    你好,我现在数据来的很快,所以应该是你说的线程切换时候post了它还没有跑...
    能具体讲讲FIFO怎样操作吗?是指用ThreadPool或者AsyncTask来解决吗?
    谢谢了~~
      

  4.   


    谢谢解答~~确实如你所说的这样,大概是我的数据量太大了吧。我现在换了一种方式,把数据处理放在了线程里进行,这样直接给主线程传一个十进制的数字就够了。可是这样改了以后的结果仍然是一样,比如在我应该返回a=10的时候Handler没有执行,等到a=20了才执行,此时返回的就变成20了,10就被忽略掉了...请问你知道有什么好的解决办法吗?
    再想请教一下,执行handler的次数也不一样,有时候执行一次,有时候两次,有时候四五次,这又是为什么呢?
    在这方面还是新手,麻烦解答解答了~~谢谢~~
      

  5.   

    FIFO就是个buffer,你子线程处理好数据就往里丢,主线程从里面取。典型的生产者消费者问题啊!