永发信息网

Handler一定要在主线程实例化吗?

答案:2  悬赏:0  手机版
解决时间 2021-11-15 11:52
  • 提问者网友:温柔港
  • 2021-11-14 12:01
Handler一定要在主线程实例化吗?
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-11-14 12:55
不是的,有以下两种:
一,如果不带参数的实例化: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())。
全部回答
  • 1楼网友:孤老序
  • 2021-11-14 13:41
如果你不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的looper一般而言,如果你的Handler是要来刷新操作UI的,那么就需要在主线程下跑。情况:1.要刷新UI,handler要用到主线程的looper。那么在主线程 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());懂了吗不懂可以继续提问,嘿嘿 查看原帖>>
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯