问题标签 [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 投票
1 回答
376 浏览

android - 如何停止处理程序线程中的通知

我有一个具有四个 RemoteView TextViews 的自定义通知。当 onPause() 被调用时,我想发布通知,然后在屏幕打开时每秒更新一次。当 onResume() 被调用时,我想取消通知。到目前为止,我已经设置好了,所以我有一个 volatile 布尔值,当 onPause() 被调用时设置为 true,当 onResume() 被调用时设置为 false。我有一个启动 HandlerThread 然后检查 volatile 布尔值的方法。如果布尔值为真,则应该更新通知,如果为假,则应该取消通知并关闭 HandlerThread。

就开始通知并每秒更新一次而言,一切似乎都运行良好。但是,当 onResume() 被调用时,它不会停止通知。

我还没有编码内容的屏幕,因为在我继续之前我试图弄清楚如何关闭通知和 HandlerThread。

到目前为止,这是我的代码:

0 投票
2 回答
299 浏览

java - Android DownloadFilesTask 概念

在教程的帮助下尝试使用客户端服务器(获取 mysql 数据)时,我遇到了很多错误。我刚刚在这里阅读了一些主题,我了解到我得到的最大错误

http 连接出错android.os.NetworkOnMainThreadException E/log_tag:错误转换结果java.lang.NullPointerException

可能是因为我需要线程和处理程序之间的辅助任务。

我有以下代码,我理解这个概念,通常它应该可以工作。

我不会在服务器上发布 php 脚本,因为如果我通过浏览器调用 URL,它会正确传递我的测试数据,所以应该没问题。

现在在执行应用程序时,我得到了上面的错误。在网上搜索时,我发现了 DownloadFilesTask 概念,听起来它应该是解决方案。但我不会得到它,我无法在我的代码中实现它。有人可以帮忙吗,或者除了developer.android上的教程之外还有什么好的教程。

0 投票
2 回答
2577 浏览

android - android Handler给出Null对象引用错误

我的进程使用 Handler 更新了 UI 线程中的 ProgressBar。但它给出了这样的错误。
.Handler.sendMessage(android.os.Message)' 在空对象引用
上请检查我的代码

它清楚地表明错误是在这里形成的,

handler.sendMessage(消息);

0 投票
0 回答
106 浏览

java - 无法在 HandlerThread 子类中的 ImageView 上设置可绘制对象

我正在编写一个 flickr 客户端,作为我正在阅读的书中项目的一部分。在其中我创建了一个 HandlerThread 的子类,它从 flickr 下载图像,然后将它们设置在 ImageView 中。我在程序的前面设置了一个占位符 .png 并且它绑定(但有延迟)但是当我尝试替换它时没有任何反应。占位符保留在那里并且不会被替换。似乎发生了一些事情,这阻止了我的 HandlerThread 正常运行。我尝试使用调试器逐步完成此操作并查看 logcat,但是自上次更新到 android studio 以来,logcat 一直特别无用。如果有的话,它可以部分工作。对了,我没有收到任何错误消息。早些时候我收到一个说我有一个空指针异常,但我无法看到它来自哪里,并且在再次运行应用程序时它就消失了。我正在发布我的代码示例,包括用作 UI 线程的主 Fragment,以及作为我的 HandlerThread 子类的 ThumbnailDownloader 类。

这是我的 HandlerThread 实现:

老实说,在这一点上,我什至不确定问题出在哪里。queueThumbnail 似乎从未运行过。但是仅设置占位符 wait.png 需要很长时间,以至于在绑定到 ViewHolder 时,占位符和下载的图像之间似乎存在一些混淆。我只是不确定它可能在哪里。我添加了评论来指出这一点。

0 投票
1 回答
75 浏览

java - 从 Facebook 下载用户个人资料图片:AsyncTask 或 HandlerThread

我有一个网址列表。每个 url 都有一个不同的 facebook 用户的个人资料图片。

我想下载这些图片并将它们显示在 UI 线程上(在屏幕上)。

我为每个图像使用了新的 AsyncTask,并且图像被一张一张地显示出来。

doInBackground(后台线程)返回位图:

onPostExecute(UI 线程)将为我的成员设置图像位图

  1. 这是下载图片的正确方法还是我需要使用处理程序?
  2. 当用户想要在 UI 上进行更改时选择 AsyncTask,而 Handler 用于通过消息在任意 2 个线程之间进行通信。有什么特别的区别吗?因为我似乎可以同时使用这两种态度。
0 投票
4 回答
10340 浏览

android - 如何停止处理程序线程?

我想在按钮单击时停止此线程。

我在onCreateActivity 中使用上述处理程序。我想阻止它。如何在单击任何按钮或单击 Back Pressed 时停止该线程?

0 投票
0 回答
152 浏览

android - HandlerThread 录音机在消息发送到其处理程序之后不开始录制

我正在尝试编写一个录音机应用程序。整个应用程序由两个组件组成:Main Activity,它只包含一个名为 RecordFragment 的片段,以及负责录制音频的 RecordThread 类。

RecordThread 是从 HandlerThread 扩展而来的。

这个想法是用户按下一个按钮,并且附加到 RecordThread looper 的处理程序发送一条空消息以开始录制。然后线程应该处理该消息并开始录制,直到用户再次按下按钮停止录制,该处理程序再次发送另一条消息(我认为线程的消息队列)以停止录制。

问题#1:RecordThread 从不开始记录甚至处理来自队列的消息。

问题 #2:我应该如何处理 recordThread 中的消息?

记录线程.java

记录片段.java

AndroidManifest.xml

0 投票
0 回答
113 浏览

android - onresume 中的处理程序导致 sigbart 错误

我正在使用处理程序 onresume 方法,该方法会导致 sigbart 错误,要求不要阻塞 ui 线程。这是我的代码:

这是错误:

如何修复它,使其不会阻塞 UI 操作/线程,同时按预期工作而不会崩溃。

0 投票
1 回答
413 浏览

android - 如何在做某事之前正确等待 HandlerThread 启动?

在我的项目中,有时创建的线程不会像应有的那样快速启动,这发生在极少数情况下,但大多数情况下会发生在速度较慢/较旧的手机上。

我的线程喜欢..

当我使用它并调用活动时..

函数 setList 有时不会触发。所以我做了这样的事情。

修改后的操作似乎有效,但是我不太确定这是否是一种安全的方法。先感谢您。

0 投票
0 回答
158 浏览

android - 如何相当一个工作线程的 Looper

我编写了以下代码以更好地理解 Handler 和 Looper。我想知道如何在发生特定条件时退出 Looper,例如,当计数器达到特定限制时。

在下面的代码中,当“what”等于10时,我想在线程T的looper上调用.quit()。根据我下面写的代码,即使“what”的内容超过10,“ handleMessage” 方法被调用...我预计当调用 .quit() 时,将不再调用“handleMessage”。

请让我知道如何正确退出 Looper。

应用程序.gradle