d3x*_*ter 3 android android-handler
我浏览了官方文档,但我似乎找不到new Handler()和之间是否有任何区别new Handler(Looper.myLooper())
new Handler()
默认构造函数将此处理程序与当前线程的 Looper 相关联。
Looper myLooper ()
返回与当前线程关联的Looper对象。如果调用线程未与 Looper 关联,则返回 null。
从Handler 源代码来看,如果您不提供looper,则默认情况下它将在Handler初始化 的当前循环器上进行操作,即Looper.myLooper()。
所以
new Handler()
和
new Handler(Looper.myLooper())
Run Code Online (Sandbox Code Playgroud)
基本相同。
但是,Handler(Looper looper)当您想要更改线程而不是创建句柄对象的线程时,可以使用构造函数。
例如,如果您在后台线程中并且想要在主线程上运行某些内容,则您将无法简单地执行此操作,new Handler()因为该处理程序将在同一线程中运行。
在这里,您可以使用带有 Looper 参数的构造函数,如下所示:
new Handler(context.getMainLooper())
或者
Handler(Looper.getMainLooper()) //if you don't have context
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |