Android中Can't create handle inside thread的解决办法

今天在做Android 程序的时候,为了避免UI阻塞,所以将一些业务处理的代码放到了子线程中(貌似早就该这么做了,深深的鄙视自己中……),但是碰到了一个问题,如题目所示:Can't create handle inside thread 这就让我纳闷了,于是百度google了一下,很多的解决办法,

    列举一下:

            1、handler放到主线程里面,子线程只是来调用handler.sendMessage()

            2、在handler创建之前调用Looper.prepare()(这个是LogCat中给出的提示)

            3、最好把该创建的线程都在主程序中做好,界面只要去接收和转发就好了(这个不知道是否正确)

可是自己试了一下,还是不能解决自己的问题,究竟问题出在哪里呢?

重新看了一下自己的代码,看了一下错误,貌似是线程之间出现了交叉?导致报这样的错误?

再者:主线程主要是处理UI的,那么子线程就没有必要处理UI了,难道是我的子线程中处理UI了?

    看了一下自己的代码,果然,我在子线程中加入了Toast的提示,这样,子线程就负责了一部分UI的处理。

    于是乎,删掉UI处理的部分,问题解决。


注:子线程中不要处理UI,UI交由主线程处理就OK了

 

我的博客:www.dutycode.com


另外附上一下其他的解释:

http://blog.csdn.net/cangkukuaimanle/article/details/6937503

http://bbs.csdn.net/topics/340156186

你可能感兴趣的:(多线程,线程,UI,android,Google)