复习一下消息机制,如下代码:
new Thread() {
Handler handler = null;
[@Override](https://my.oschina.net/u/1162528)
public void run() {
handler = new Handler();
}
}.start();
如果执行会抛出异常:
Can't create handler inside thread Thread.currentThread() that has not called Looper.prepare()
这是为什么呢?
我们进入Handler的构造方法
public Handler(Callback callback, boolean async) {
if (FIND_POTENTIAL_LEAKS) {
final Class<? extends Handler> klass = getClass();
if ((klass.isAnonymousClass() || klass.isMemberClass() || klass.isLocalClass()) &&
(klass.getModifiers() & Modifier.STATIC) == 0) {
Log.w(TAG, "The following Handler class should be static or leaks might occur: " +
klass.getCanonicalN