handler必须在主线程中实例化吗
1个回答
展开全部
不是的,有以下两种:
一,如果不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的looper。
二,一般而言如果Handler是要来刷新操作UI的,那么就需要在主线程下跑。那么在主线程 Handler handler = new Handler()。
三,如果在其他线程,也要满足这个功能的话,要Handler handler = new Handler(Looper.getMainLooper());不用刷新ui,只是处理消息。
四,当前线程如果是主线程的话,Handler handler = new Handler();不是主线程的话,Looper.prepare(); Handler handler = new Handler();Looper.loop();或者Handler handler = new Handler(Looper.getMainLooper())。
一,如果不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的looper。
二,一般而言如果Handler是要来刷新操作UI的,那么就需要在主线程下跑。那么在主线程 Handler handler = new Handler()。
三,如果在其他线程,也要满足这个功能的话,要Handler handler = new Handler(Looper.getMainLooper());不用刷新ui,只是处理消息。
四,当前线程如果是主线程的话,Handler handler = new Handler();不是主线程的话,Looper.prepare(); Handler handler = new Handler();Looper.loop();或者Handler handler = new Handler(Looper.getMainLooper())。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询