目录
一、要注意主线程Looper和子线程的Looper的创建不一样
一、要注意主线程Looper和子线程的Looper的创建不一样
1、主线程Looper
创建:
获取(两种方法):getMainLooper无论在哪都能获取到主线程Looper,而myLooper()要根据当前线程来获取
2、子线程Looper
创建:
获取:
判断当前线程是不是主线程:
Looper.myLooper() == Looper.getMainLooper()
二、Looper和ThreadLocal的个数的问题
public class Test {
public static void main(String[] args) {
Looper.prepare();
Looper ceo=Looper.getCeo();
System.out.println("主线程"+ceo);
System.out.println("主线程"+ceo.threadlocal);
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
Looper ceo=Looper.getCeo();
System.out.println("子线程"+ceo);
System.out.println("子线程"+ceo.threadlocal);
}
}).start();
}
}
结果:
由此可见:threadLocal无论在什么线程中都是一样的,而looper在不同的线程中创建会不一样