- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我浏览了官方文档,但我似乎找不到 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/
我的应用程序有问题。我需要在特定时间间隔获取位置更新,因此基本上需要能够很好地控制 GPS 模块,这对于 Android 操作系统来说并不容易。基本上我需要以 5 分钟的间隔打开 GPS 2 分钟。我
考虑以下 fragment : Looper.prepare(); handler = new Handler() { @Override public void ha
在 Android 中,如果是 UI 线程,我们只需创建 Handler,因为主 UI 线程已经有了它的 Looper。 我想知道在框架代码中为 UI 线程调用 Looper.prepare 和 Lo
有人可以简单地向我解释一下以下术语以及它们之间的关系吗? handler - 每个线程都有一个处理程序?每个 View 都有一个处理程序?执行post()。操作系统主线程有默认处理程序吗? 循环器 -
我正在创建一个线程来处理请求。在线程中,我必须调用 Looper.prepare() ,这是它正在使用的其他一些功能所需要的,然后我调用 Looper.loop() 。但是当请求的连接关闭时,我会在不
所以我有这个循环器,我用它来执行长时间运行的任务。我将 Worker 对象传递给它,它本质上是一个 Runnable 的包装器 我注意到它似乎正在泄漏大小完全相同的 Message 对象 知道为什么会
我试图理解 android 中的循环器和处理程序,但被编写的示例卡住了。我想做的是,向线程添加一个循环程序,使线程在 run() 方法中连续运行。然后将消息或 runnables 发布到 hanlde
我有一个在互联网上请求数据信息的应用程序(客户端-服务器应用程序),但是这种通信非常慢,因此我决定创建一个 AsyncTask 来管理延迟。在 doInBackground 中,我调用了 Looper
我想知道 Looper 类实际上是如何处理 Looper 附加到的 Thread 中的 Runnables(通过 Handler 类)的?如果一个 looper 在它的 messageQueue 中循
我在使用 Android looper 时遇到问题。我有一个扩展了 AsynTask 的类。在 doInBackground() 方法中,我有 Looper.prepare() 和下面的一些代码。 它
我有一个线程,用于定期更新 Activity 中的数据。我创建了线程并启动了一个循环程序,以便将处理程序与 postDelay() 一起使用。在我的 Activity 的 onDestroy() 中,
我是 Android 新手。我想知道 Looper 类的作用以及如何使用它。我已阅读 Android Looper class documentation但我无法完全理解它。我在很多地方都见过它,但无
我有一个帮助类,用于在数据库 Realm 做一些工作。如您所知,我们在使用 Realm 时有一些限制,例如: Realm 实例不会在非循环线程上自动刷新。 Realm 对象只能在创建它们的线程上访问
我有一个子线程正在运行以无限地执行任务。我想(1)不断将数据发送回UI线程,并且(2)偶尔将数据(对应于按钮)发送到子线程以暂停/继续无限任务。我的问题是子线程卡在了循环程序中,这意味着任务无法执行。
这个问题已经有答案了: Can't create handler inside thread that has not called Looper.prepare() (30 个回答) 已关闭 1 年
我在这段代码中循环遍历对象的attaylist并为每个对象分配一个回调,但是当我开始使用CountDownTimer时,它崩溃了Can't create handler inside thread t
我的 Android 应用程序允许用户从 Fragment 更新他们的 Facebook 状态。我已经实现了以下 AsyncTask,以便他们可以登录: public class update
这个问题已经有答案了: Can't create handler inside thread that has not called Looper.prepare() (30 个回答) Threadi
我正在使用附加到 Android HandlerThread 的 Looper执行长时间运行的异步任务: HandlerThread handlerThread = new HandlerThread
我已经尝试了 mContext.getMainLooper() 和 Looper.getMainLooper()。两者都返回相同的结果,但我想知道哪种方法正确? 我还从 Android 开发人员链接中
我是一名优秀的程序员,十分优秀!