问题标签 [android-handlerthread]

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.

0 投票
0 回答
13 浏览

android - 输入参数传递给 Android 中的处理程序线程

有人可以帮我如何将输入参数传递给 Handler 线程吗?顺序如下:

启动处理程序线程

处理程序线程内部类

0 投票
1 回答
25 浏览

android - 使用从 HandlerThread 继承的类时 Handler/Looper 出现问题,handleMessage 的代码不运行

我的项目中有一个片段:

而且我在后台线程中有一个从 Flickr 下载缩略图的类:

当我启动我的程序时,我有以下日志:

但我计划有另一个日志:

override fun handleMessage(msg: Message)不执行的代码。也许这是因为 line requestHandler = Handler(),其中 Handler() 被划掉,Android Studio 告诉它已被弃用。

我需要做什么来运行 handleMessage 代码?也许我需要在后台线程中对 Looper 做一些事情,我不知道。感谢您的回答!

0 投票
0 回答
189 浏览

android - 处理程序中的 Android 消息队列以意外延迟发送

我创建了一个架构,其中一个进程通过 IPCA与另一个进程通信。B

A运行粘性服务。B运行粘性服务。

A服务绑定到B服务。

当绑定成功时,

  • 对于从 A 到 B 的请求,A 创建:
  • 对于从 B 到 A 的答案,A 创建:

A收到来自 的响应时B,首先记录接收到的android.os.Message对象实例来处理它。此消息具有“何时”字段,它显示从 发送的B消息和在 接收的消息之间的延迟A

在大多数情况下,when 的值在 0ms 或 -1ms 左右(由于计算导致的负值 : createdtime - now) 对于非常罕见的情况,消息似乎卡住了,直到某些事情解除了这种情况。

日志显示:

当=-1h49m55s146ms

当=-1h49m53s904ms

当=-1h49m54s502ms

....直到所有“卡住”的消息都被很好地接收。

此外,当卡住的消息太多时,似乎有些丢失了,限制为 875 条消息。

我无法弄清楚什么可以解释这种行为。

0 投票
1 回答
50 浏览

android - 我应该将 Workmanager 用于应一个接一个运行的 3 个任务吗?- 安卓工作室

我正在制作一个应该执行以下任务的应用程序:

  1. 位图中的图像处理
  2. 通过在从任务 1 接收的位图中执行OCR (光学字符识别)来接收字符串
  3. 通过搜索从任务 2 收到的关键字,从应用程序的 Room 数据库中检索数据
  4. 在TextView上显示检索到的数据

我想按顺序找到这 3 个任务的方法,因为它们是相互连接的。但我不知道怎么做。

起初我想如果我能做到

但正如我在许多文章中读到的那样,这不是运行不同任务的正确方法,因为这样我在主线程上运行所有内容

我也想过为每个不同的任务使用 Executors,但问题是通过这种方式我将无法访问我需要从每个任务中接收的任何内容。(例如,我将无法使用从任务 3 到任务 4 的字符串).. 如果我理解正确

我找到了这个关于WorkManager的代码实验室,我认为这可能适合我。 https://developer.android.com/codelabs/android-workmanager-java#0

我还找到了关于HandlerThread的教程,但我仍然不确定这是否适合我。 https://www.youtube.com/watch?v=n0mkYSjldeA

我真的很困惑,因为我对 android 很陌生。有人可以推荐我一些东西吗?

0 投票
1 回答
33 浏览

android - 如何在Android中停止使用HandlerThread的ServiceHandler?

我正在尝试从手机中读取传感器数据。我已经启动了一个服务,它创建了一个 HandlerThread 来收集传感器数据。线程注册传感器一小会儿然后取消注册。但是,当我停止服务时,线程会继续运行,并且我看到打印语句正在工作。我该如何阻止这个?这是我的服务代码。

0 投票
1 回答
29 浏览

java - android中线程中的UI更改

我正在编写一个 android 应用程序,要求我在再次更改之前将图像按钮的前景保持一秒钟。所以我编写了下面的代码(它用于更改其他项目中两个按钮上的文本颜色)并且我知道问题是我正在更改非主线程中的 UI 元素并且我知道我不能使用“runOnUiThread”方法,但在我当前的函数中找不到这样做的方法,所以如果有人可以帮助我,请感谢。