Thread 中可不可以new Handler?

不可以也可以。

不可以是因为:

在new Handler()的时候,调用了handler 双参的构造方法,

在此方法中

会创建一个Looper ,  从Looper中get ,而Looper.myLooper 是从  sThreadLocal中获取的



sThreadLocal  的get 方法中,获取主线程,  用主线程Thread 作为  key  去获取的 Looper(Looper 作为value) 


在子线程中new Handler  是用子线程去获取Looper  ,肯定获取不到。  回报一个


Can't create handler inside thread that has not called Looper.prepare()


的错误


可以是因为:自己手动loop.prepare

你可能感兴趣的:(Thread 中可不可以new Handler?)