-
Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。
-
Android子线程中创建Handler,需要在new Handler前Looper.prepare() ,否则会崩溃。
-
每个线程只能Looper.prepare() 一次,每个线程中最多只会有一个Looper对象,否则会报错。
-
没Looper.prepare() 报错的原因是Handler的构造函数中调用了Looper.myLooper()获取Looper,而Looper的值在Looper.prepare() 时设置,没有设置Looper在new Handler中获取的为null