Android 上的 AsyncTask 和错误处理

2023-12-08

我正在将我的代码从使用转换为Handler to AsyncTask。后者非常擅长它的功能——异步更新和在主 UI 线程中处理结果。我不清楚的是,如果出现问题,如何处理异常AsyncTask#doInBackground.

我这样做的方法是有一个错误处理程序并向其发送消息。它工作得很好,但这是“正确”的方法还是有更好的选择?

我还了解到,如果我将错误处理程序定义为 Activity 字段,它应该在 UI 线程中执行。然而,有时(非常不可预测)我会得到一个异常,说代码是从Handler#handleMessage在错误的线程上执行。我应该初始化错误处理程序吗Activity#onCreate反而?配售runOnUiThread into Handler#handleMessage看似多余,但执行起来非常可靠。


它工作正常,但它是“正确的”吗 有没有更好的方法 选择?

我紧紧抓住Throwable or Exception in the AsyncTask实例本身,然后用它做一些事情onPostExecute(),因此我的错误处理可以选择在屏幕上显示对话框。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 上的 AsyncTask 和错误处理 的相关文章

  • ViewFlipper中的VideoView在播放视频时是透明的

    我有一个 Activity 在 ViewFlipper 中设置了两个视图 其中一个视图是带有 GLSurfaceView 和一些其他小部件的布局 另一个视图只有带有 TextView 和 VideoView 的布局 当我单击 GLSurfa
  • Twowayview 滚动时自动添加内边距

    我在用双向视图 https github com lucasr twoway view在我的一个项目中 这是android的扩展回收者视图 https developer android com reference android supp
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • 记录时何时出现致命错误?

    在 log4j 和 log4net 等日志框架中 您可以记录各种级别的信息 大多数级别都有明显的意图 例如 调试 日志与 错误 日志是什么 然而 我一直害怕的一件事是将我的日志记录归类为 致命 哪种类型的错误如此严重以至于应被归类为致命错误
  • Android 片段之间的阴影分隔符

    我有一个类似于平板电脑的 ICS Gmail 应用程序的布局 ListFragment左边是内容 右边是内容 我想知道如何构建布局 使两个片段之间有一个阴影分隔符 就像在 Gmail 应用程序中一样 如下所示 另外 由于这适用于这个问题 我
  • 我如何从android中的复选框获取值

    我想获取复选框中所选项目的名称 但我只得到一些字母数字 如何从复选框中获取所选项目的名称 public View getView int position View convertView ViewGroup parent View vie
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • AltBeacon 服务位于单独的 Android 进程中

    我需要帮助 有一个适用于 Xamarin Android 的应用程序 在其中 启动了一个与 AltBeacon 库配合使用的服务 在此服务中 创建了一个线程 在该线程中不断扫描信标 服务以 StartForeground 启动 该服务应该有
  • 动态地将textView添加到线性布局中

    我在这里的某个地方读过这篇文章 但我完全迷失了 但我需要一些帮助 我的应用程序正在将列名称从 sqlite 拉入数组中 我想创建一个文本视图并为每个视图编辑文本 通过数组的大小 我记得在某处读过 您可以将 textViews 变量名称视为数
  • java.net.ProtocolException:流意外结束

    我面临一个奇怪的问题 并且无法调试它 我已经实现了上传数据流的逻辑 并使用 Volley 来实现相同的功能 我在HurlStack addBodyIfExistsapi 以便可以处理 application octet stream 类型的
  • 垂直从上到下线手势检测器

    我用的是 手势工具 注意到对于垂直从上到下的线无法检测 因为我在代码中使用生成的手势文件 如下所示 但无法检测垂直从上到下的线手势检测 import java util ArrayList import android app Activi
  • Flutter - 删除 ListView 中项目之间的空间

    我正在使用 ListView builder 函数来创建项目列表 然而 iOS 中每个项目之间的空间很大 截图 你知道如何删除项目吗 看来是默认的 因为我没有添加它 code 列表显示 return Scaffold body ListVi
  • 运行 Android 应用程序时出现错误

    我已经使用 Eclipse 创建了一个 Android 应用程序 但应用程序未在 AVD 上运行 它显示 不幸的是已停止工作 日志猫消息如下 07 29 04 59 50 789 W dalvikvm 784 threadid 1 thre
  • 推特更新状态

    我正在通过 twitter4j 将 Twitter 集成到 Android 我可以成功阅读我发布的推文 现在我试图用它发布推文 但我不能 我收到如下奇怪的警告 02 01 16 28 43 298 WARN System err 729 4
  • 如何从一个活动检索 Double 值到另一活动?

    我制作了一个包含 2 个活动的应用程序 其中第一个活动包含一些 EditText 十进制数字 另一个活动也包含一些 EditText 十进制 现在我想将一个 EditText 的值传递给另一个 但作为 双 而不是作为一个字符串 因为该值将用
  • 按“重置应用程序首选项”后,我的应用程序的所有权限都被撤销

    我开发了一个应用程序 支持Android 6 0 当我在 设置 gt 应用程序 gt 重置应用程序首选项 中重置应用程序首选项时 我的应用程序的所有权限都将被撤销 并且应用程序不会重新启动 撤销权限后未能重新启动应用程序可能会导致许多意外崩
  • 传递 Android DialogFragment 参数时,onCreateDialog 捆绑参数意外为 null

    我正在尝试使用 DialogFragment 在 Android 中显示一个基本对话框 并使用对话框消息的参数 如中所述StackOverflow线程 https stackoverflow com questions 15459209 p
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro
  • Android Volley - 发布请求 - 无法在线工作

    我试图通过 Volley 发出 POST 请求 它在我的本地主机中工作得很好 但是当我将它移动到网络服务器时 响应为空 Java代码 RequestQueue queue Volley newRequestQueue this String

随机推荐

  • 转编译为另一种语言[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 代码转编译的典型方式有哪些 目前 我正在编写一种简单的编程语言 其处理方式是递归的 循环遍历一个节点列表 假设当前节点是一个变量节点 它会调用一个emit variable no
  • .NET UIElement.TranslatePoint 的 UWP 等效项

    我希望获取 UIElement 相对于其容器的位置 以将图像覆盖在其顶部 System WIndows 命名空间中的 UIElement 正是我想要的 UWP 中的等效项是什么 您可以使用UIElement TransformToVisua
  • 如何更改线性布局与相对布局中文本视图和按钮的顺序?

    我对 stackoverflow 完全陌生 对 Android 移动开发也只有几周的时间 非常感谢 stackoverflow 我 90 的以 Android eclipse 开头的 google 搜索都是在这里找到的 现在开始追逐 我有一
  • 为什么从服务调用时 GetWindowThreadProcessId 返回 0?

    在控制台应用程序中使用以下类 并且至少有一个记事本实例正在运行时 GetWindowThreadProcessId正确返回非零线程 ID 但是 如果 Windows 服务中包含相同的代码 GetWindowThreadProcessId总是
  • Java 中的 readline() 返回 null

    我正在尝试读取 Java 程序中的标准输入 我期待一系列数字后跟换行符 例如 6 9 1 当通过 eclipse 内置控制台提供输入时 一切顺利 但是当使用 Windows 命令行时 程序会打印 Received 6 Received nu
  • 适用于大型 XML 的高效解析器

    我有非常大的 XML 文件需要处理 我想将它们转换为带有颜色 边框 图像 表格和字体的可读 PDF 我的机器上没有太多资源 因此 我需要我的应用程序能够非常优化地寻址内存和处理器 我做了一个谦虚的研究来决定要使用的技术 但我无法决定什么是最
  • Elixir 不使用 enum.each 更新地图集中的值

    map set MapSet new Enum each filtered list fn x gt map set MapSet put MapSet new map set x 这里的filtered list是一个包含字符串的列表 但
  • Outlook AddIn:如何使用 Outlook 桌面显示 console.log?

    我正在使用 JavaScript 开发 Outlook 插件 我的功能在 Outlook Web 中运行良好 但在 Outlook Desktop 中不起作用 在 Outlook Web 中 我可以在浏览器的控制台中看到我的 console
  • 在c#中将base-27(或base-X)转换为base-10?

    是否有现成的函数能够在 C 中进行基本转换 我希望将基数 26 和基数 27 数字转换为基数 10 我可以在纸上完成 但我不是一个非常有经验的程序员 如果可能的话 宁愿不从头开始 谢谢 有一个现成的函数可以将数字从基数 2 8 或 16 转
  • LoadLibrary引用计数

    From MSDN 系统在所有加载的模块上维护每个进程的引用计数 调用 LoadLibrary 会增加引用计数 该引用计数存储在哪里 实际的 Windows 加载程序位于 NTDLL dll 中Ldr加载DLL功能 该函数没有文档记录 其内
  • 我们如何识别动态 URL 中的参数?

    我们正在构建一个 Rails CMS 其中博客或新闻列表可以出现在站点树中的任何位置 这意味着任何页面都根据数据库字段知道其类型 例如 页面知道它是新闻列表类型 因此一旦为该页面调用该 URL 我们就需要新闻列表控制器对其进行处理 新闻列表
  • 无法在Mac上安装pygame

    我正在尝试安装pygame在我的 Mac 上 当我导入时pygame 返回以下错误 Traceback most recent call last File
  • 将语言注释放在扩展方法接收器上

    使用Language通过注释 IntelliJ 可以被告知将参数视为给定语言的参数 以便可以启用自动完成和其他 IDE 工具 也可以对接收器参数执行此操作 或者是否有其他方法来获取扩展类型的语言功能 我努力了 fun Language SQ
  • 从 JavaFX 开始:无法将 javafx.scene.control.Label 字段 application.SceneController.myLabel 设置为 javafx.scene.text.Text

    我从 JavaFX 开始 当我执行程序时发生错误 在我尝试执行此操作之前 它工作正常并且按钮单击有效 但那是在我打算让按钮单击更改文本之前
  • Chrome 图像圆角周围的边框消失

    所以 这就是问题所在 http bildr no view 927562 仔细看看 http bildr no view 927563 这是一个不幸的 webkit 错误 我知道的唯一解决方法是将您的 img 转换为 div 然后将 img
  • 覆盖不同的ggplot2对象

    我之前曾尝试寻求帮助 但并没有真正解决我的问题 更多信息可以在这里找到 您可以在这里找到数据集 https stackoverflow com questions 51442502 survival analysis combining s
  • 如何处理 Common Lisp (SBCL) 中的重音符号?

    这可能是非常基本的 但我不知道还能问哪里 我正在尝试处理 SLIME REPL 中以葡萄牙语编写的文件中的一些文本信息 因此使用了很多重音字符 例如 等 当我处理英文文本时 我使用以下函数 defun txt2list name with
  • PHP DOMDocument 用 div id 替换内容

    我正在尝试像 jQuery html 中那样替换 div 的内容 这是我到目前为止所做的 html div div p This is some text p div div doc new DOMDocument doc gt loadH
  • 从命令行设置证书的读取权限

    谁能指出我从命令行管理证书读取权限的正确方向 我正在编写我们的证书安装脚本 并且需要允许 NetworkService 访问 本地计算机 个人 证书 存储中的 2 个证书 提前致谢 我这样做是为了授予我们的 Web 应用程序访问 Windo
  • Android 上的 AsyncTask 和错误处理

    我正在将我的代码从使用转换为Handler to AsyncTask 后者非常擅长它的功能 异步更新和在主 UI 线程中处理结果 我不清楚的是 如果出现问题 如何处理异常AsyncTask doInBackground 我这样做的方法是有一