Handler必须在主线程中实例化吗?
不是必须的。如果你不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的Looper。
1、如果你要刷新UI。
要么在主线程下
Handler handler = new Handler();
要么在非主线程下
Handler handler = new Handler(Looper.getMainLooper());
2、如果不刷新UI,只处理消息。
主线程下
Handler handler = new Handler();
非主线程下
Looper.prepare();
Handler handler = new Handler();
Looper.loop();
或者
Handler handler = new Handler(Looper.getMainLooper());