gpt4 book ai didi

android - new Handler() 和 new Handler(Looper.myLooper()) 之间的区别

转载 作者:行者123 更新时间:2023-12-05 00:21:23 29 4
gpt4 key购买 nike

我浏览了官方文档,但我似乎找不到 new Handler() 之间是否有任何区别和new Handler(Looper.myLooper())

new Handler()

Default constructor associates this handler with the Looper for the current thread.

Looper myLooper ()

Return the Looper object associated with the current thread. Returns null if the calling thread is not associated with a Looper.

最佳答案

来自处理程序 Source code ,如果您不提供 looper,默认情况下它将在初始化 Handler 的当前 Looper 上进行操作,即 Looper.myLooper() .

所以

新处理程序()

new Handler(Looper.myLooper())

基本相同。

但是,Handler(Looper Looper) 构造函数可用于您想要更改线程而不是创建句柄对象的线程的情况。

例如,如果您处于后台线程并希望在主线程上运行某些内容,则不能简单地使用 new Handler() 来完成此操作,因为该处理程序将在同一线程。

在这里,您可以使用带有 Looper 参数的构造函数,例如:

新处理程序(context.getMainLooper())

Handler(Looper.getMainLooper())//如果没有上下文

关于android - new Handler() 和 new Handler(Looper.myLooper()) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49704317/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com