问题标签 [looper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ui-threads messagequeue、looper和handler类之间的行为
我发布这个问题是因为我想知道我对基础知识的想法是否正确。
应该清楚的是 UI-Thread 包含 a MessageQueue
,它与 a 相关联,Looper
用于从队列中获取消息/可运行对象以进行处理。
此外,aHandler
向 发送消息/可运行Looper
文件,后者将对象集成到MessageQueue
.
如果我是对的MessageQueue
,那是堆栈,而Looper
是传入和传出对象的看守者。
这引出了我的下一个问题。如果一个消息对象被 UI-Thread 处理,它会被回收到全局消息池中。但是没有关于此的明确文档。这个消息池有特定的大小吗?如果我发送/获取消息,它是否可扩展/可收缩?
如果这是真的,则池可能会因获取许多消息而变干。我无法相信这一点。考虑这样一种情况,您必须在特定时间段内获取一些消息而不将它们发回回收。
编辑使其更易于理解。
android - 我可以得到一个非阻塞的 Looper 吗?
我有一个带有消息循环器的线程,用于一些位置计算。为此,我呼吁:
为了获得一个有效的 Looper 对象,我准备了我的线程,如下所示:
但是是否有可能在同一个线程中有一个额外的while循环用于数据处理?
也许我可以以某种方式派生出自己的 Looper 并手动处理消息,但是如何?
android - 无法创建轮询位置服务android
我正在尝试为位置创建轮询服务,该服务开始更新位置并等待 2 分钟,然后删除更新
当我尝试使用我的模拟器发送位置时,我的位置监听器似乎没有收到一个。
是因为我没有为我在线程中创建的 looper 实现处理程序吗?
或者因为我的线程休眠所以我没有收到任何位置
}
c++ - 我在哪里/如何获得 Looper?
根据 C++ 标准或 C++ 标准库,我在哪里/如何获得 Looper?
我需要设计自己的回调系统,当然,我需要这个系统来管理我的队列和组件。
Looper 是给定频率做一件简单的事情的东西,它只是在每个时钟运行一个队列,如果您设置一个 10 ms 的 looper,则每 10 ms 循环器将触发队列中的事件/事件。
这基本上是一个循环器,大部分时间通常与内核、硬件时钟或一些非常低级的东西相关联。
android - Android广播接收器内的线程
我得到一个 DownloadManager.ACTION_DOWNLOAD_COMPLETE 广播后,我需要提取 zip 文件并填充我编写的代码来完成我的工作的数据库。但是我必须在这里启动线程来处理文件提取和插入数据库。
我知道无法在广播接收器中启动线程。如果任何机构遇到问题,请提出解决方案..因为我的工作需要时间插入,所以我不想等待并坚持下去。
我在广播接收器中运行线程时遇到异常,并且
编写此代码也无法在广播接收器中工作
注意 - 没有异常或错误通过,并且在调试时在 DDMS 中也没有启动任何 Intentservice
};
android - android:无法在未调用 Looper.prepare() 的线程内创建处理程序
可能重复:
无法在 AsyncTask 中为 ProgressDialog 调用 Looper.prepare() 的线程内创建处理程序
在我的程序中,我想显示进度对话框,因为我已经创建了线程,但它让我Can't create handler inside thread that has not called Looper.prepare()
也看到了以前发布的问题,但我可以处理这个。这是我的代码
请有人帮我解决这个问题。
android - Android中Looper、Handler和MessageQueue是什么关系?
我已经检查了官方的 Android 文档/指南中的Looper
,Handler
和MessageQueue
. 但我无法得到它。我是 android 新手,对这些概念非常困惑。
android - Android 处理程序和 Looper.prepare() 问题
我正在为 android 创建一个太空射击游戏,我目前正在实施射击方法,但是在尝试创建新镜头并绘制它们时遇到了一些我无法弄清楚的问题。
我有这个方法:
从 run() 方法调用但我收到错误:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
我试过在论坛上研究它,但完全可以弄清楚如何解决它,有人可以帮助我吗?
问候,弗雷德
java - 为什么我的 AsyncTask 中需要 Looper?
我想使用 AsyncTask 用服务器更新我的 db4o。在 doInBackground 方法中,我连接到服务器,更新 db4o,并安排一个挂起的意图。不修改 UI 或显示任何 toast。
最初,我有以下错误:
添加 Looper.prepare() 后,工作正常,但仅适用于五次更新(AsyncTask)。我读过这个主题:AsyncTask threads never die (Android),我现在没有失败。当我进行第六次更新时,应用程序崩溃了:
我在文档中读到我需要 Looper.loop(),但是这样,应用程序崩溃了。
例子:
为什么我需要 Looper?为什么应用程序在五次更新后崩溃?我在哪里可以安排 Looper.loop()?
提前致谢!
android - Android:LocationManager 构造函数的循环器
可以使用以下方法开始从 LocationManager 检索通知:
文档用这些词解释属性:
如果我想开始使用这种方法接收更新,我不能很好地理解类(looper)的行为。
此外,我正在围绕类 LocationManager 创建一个库,并且在执行正常行为之前,我需要做一些其他工作。我需要的是开始接收库的 LocationListener 更新,而不是仅在验证某些条件后才执行正常行为。
为了做到这一点,如果用户开始使用上述方法接收更新,我需要知道如何模拟具有 LocationManager 的行为。
我希望我很清楚。有人能帮我吗?谢谢!