如何处理AsyncTask失败

2023-11-23

有没有特定的方法来处理 AsyncTask 中的失败?据我所知,唯一的方法是使用任务的返回值。如果可能的话,我希望能够提供有关失败的更多详细信息,并且 null 并不是很冗长。

理想情况下,它会提供一个 onError 处理程序,但我认为它没有。

class DownloadAsyncTask extends AsyncTask<String, Void, String> {

    /** this would be cool if it existed */
    @Override
    protected void onError(Exception ex) {
        ...
    }

    @Override
    protected String doInBackground(String... params) {
    try {
            ... download ...
        } catch (IOException e) {
            setError(e); // maybe like this?
        }
    }       
}

您只需将异常保存在字段中并签入即可onPostExecute()(以确保任何错误处理代码都在 UI 线程上运行)。就像是:

new AsyncTask<Void, Void, Boolean>() {
    Exception error;

    @Override
    protected Boolean doInBackground(Void... params) {
        try {
             // do work
             return true;
        } catch (Exception e) {
            error = e;

            return false;
        } 
    }

    @Override
    protected void onPostExecute(Boolean result) {
        if (result) {
            Toast.makeText(ctx, "Success!",
                Toast.LENGTH_SHORT).show();
         } else {
            if (error != null) {
                Toast.makeText(ctx, error.getMessage(),
                        Toast.LENGTH_SHORT).show();
            }
        }
    }

}

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

如何处理AsyncTask失败 的相关文章

  • 如何正确处理 JWT 刷新?

    我有一个安卓应用程序 它连接到一个REST API开发与Jersey 我的 REST 端点通过令牌进行保护 下面是我生成它们的方法 Algorithm algorithm Algorithm HMAC256 secret String to
  • 在 R 上使用 Java 16 运行 H2O

    我使用 R 命令安装了 h2o install packages h2o 这促使我安装了最新版本的 Java 我安装了 版本 16 一切都运行得很好 除了在启动时 h2o 会提醒我从 h2o ai 网站安装最新版本的 h2o 因为该版本是用
  • 改进 JUNG 图的渲染

    我正在使用 jung 来直观地显示大型数据集 数千个节点 但是当我放大或缩小或移动节点时 系统会变得非常滞后 有没有办法改善 JUNG 中图形的渲染 我用来改进图形渲染的方法是过滤图形的边缘 每次您尝试移动图形时 框架都会进行大量计算来重新
  • 如何向 Parse Signup 功能添加额外属性?

    我想向我的解析注册函数添加一个额外的属性 我的代码就像 signUp function e var self this var username this signup username val var password this sign
  • 如何使用WordNet或与wordnet相关的类别来实现基于类别的文本标记?

    如何使用wordnet按单词类别标记文本 java作为接口 Example 考虑以下句子 1 计算机需要键盘 显示器 CPU才能工作 2 汽车使用齿轮和离合器 现在我的目标是 例句必须标记为 第 1 句话 电脑 电子键盘 电子中央处理器 电
  • 如何在 Android 的 web 视图中显示内置缩放控件

    可能与此重复 始终在 WebView 中显示缩放控件1 https stackoverflow com questions 6866710 always show zoom controls in webview但我只想显示不一定总是需要的
  • 如何与 SecretKeySpec 一样加密 ruby​​ 中的数据?

    我正在尝试使用带有 AES 算法的 Cipher 来加密 ruby 中的字符串 我有用Java编写的示例 我从这个例子中得到了帮助 并用 Java 编写了代码 但无法获得与 JAVA 中相同的输出 下面是用java编写的代码 import
  • 在 AndroidManifest.xml 中添加“@android:style/Theme.Dialog”后,我的 Android 应用程序崩溃

    实际上 我的应用程序是 Beginning Android 4 Development 一书中的示例 这非常简单 我只想将对话框主题应用于活动 MainActivity java package com example activity10
  • JavaFX 可以在 Android 上运行吗?

    如果不这样做那就太可惜了 因为这将使 Android 应用程序看起来更有吸引力 现在还不行 要让它发挥作用将是一项艰巨的任务 Android 不具备典型桌面 JRE 所具备的所有库 尽管Android是开源的并且它会运行任何可以编译为Dal
  • 过滤ListView后无法获取item的实际位置

    这是我的MainActivity java我在哪里定义了一个OnClickListener在物品上 在这里 过滤后我总是得到错误的项目值 如果有 10 个项目ListView然后过滤后 如果我得到 3 个项目 并且正确的位置是 3 6 9
  • Java Socket/Serversocket WAN 连接

    我试图用我的计算机创建一个服务器 以便他们的计算机上的客户端可以与我的计算机连接和通信 我在端口 31350 上创建了服务器 客户端尝试通过我的路由器的 IP 地址进行连接 但只有当我在套接字创建参数中有 localhost 或我的计算机名
  • 如何在 JPasswordField 中启用剪切、复制?

    我注意到我无法剪切和复制JPasswordField 现在如何将密码的选定部分复制 剪切到剪贴板 有什么方法可以做到这一点吗 简单 用这个方法 JPasswordField jt new JPasswordField 20 Put clie
  • 如何在不是来自 JNDI 的 JPA EntityMangerFactory 上设置数据源

    我对 JPA 还很陌生 曾经使用过 JDO DataNucleus 和 Hibernate 我知道如何设置persistence xml对于 JPA 配置 但我需要进行一项调整 而不是指定DataSource在 XML 中 我想提供实际的D
  • 使用 Hibernate Criteria API 返回每组的第一行

    我是 Hibernate 新手 我正在尝试编写一个条件查询来返回给定日期员工的最新状态 id Status status date 1 Active 1 10 2017 2 Active 1 10 2017 1 Inactive 5 10
  • 不支持的主要.次要版本 49.0

    每当我登录我的应用程序时 我都会收到以下异常 javax servlet ServletException com sun org apache xalan internal xsltc trax TransformerFactoryImp
  • Android 6:无法再共享文件?

    我正在分享一个图像 并且此代码适用于 Android 6 之前的设备 Intent shareIntent new Intent Intent ACTION SEND shareIntent setType image Uri uri Ur
  • 动作编辑器在 Android studio 4.0.1 中无法工作

    I am trying to set up motion layout in android studio 4 0 1 and everything works fine until I edit in motion editor It r
  • RxJava:如何多播 Completable?

    我有一个方法返回一个Completable我希望它是multicasted因为任何第二个订阅者都不应该重新执行该方法 而是应该获得相同的旧发出值 我用它实现了replay autoConnect 如下并按预期工作 public Comple
  • 从父类返回子类

    我有一个构建器类 它从大多数方法返回自身以允许菊花链 为了使此功能适用于子类 我希望父方法返回子类的实例 以便子方法可以链接到末尾 public class BaseBuilder
  • JBoss Weld + java.lang.OutOfMemoryError:永久代空间

    我刚刚切换到 Weld 以利用 CDI JSF 2 Beans 对话范围 这是我的 Maven 依赖项

随机推荐

  • D3.js 的最大数据文件大小

    D3js 数据文件大小的限制因素是什么 文件从服务器加载到客户端需要多长时间 我正在尝试创建芝加哥的路线图 您可以将鼠标悬停在道路上以获取其名称并突出显示它 来自城市的文件大小为 125 MB 我通过删除不必要的信息将其缩减至 30 MB
  • 升级到 EF 6 (RTM) - 获取 System.Data.Entity.Core.Objects.ObjectContext 不能用于返回类型 System.Data.Objects

    刚刚升级了 NET 4 5 WCF 服务 该服务还有一个使用 EF 6 的 OData 服务 OData 服务当然在升级之前可以正常工作 现在 当尝试查询 OData 服务或什至只是从 Visual Studio 2012 浏览到它时 我得
  • 如何从 Android 联系人列表中获取 Skype 信息?

    使用联系人合同内容提供程序的新手 我正在尝试从我的应用程序中进行 Skype 通话 但我不知道如何从 Android 联系人中获取 Skype 信息 我正在通过 ContentResolver 运行查询以获取联系人的所有数据 但我不知道如何
  • 为什么 printf 和 sprintf 在仅给定数组时表现不同?

    sub do printf printf sub do sprintf print sprintf do printf s n ok prints ok do sprintf s n ok prints 2 sprintf有原型 while
  • 使用 jQuery 获取元素类型

    是否可以使用 jQuery 找出元素的类型 例如 元素是 div span select 还是 input 例如 如果我尝试使用 jQuery 将值加载到下拉列表中 但相同的脚本可以将代码生成到一组单选按钮中 我可以创建类似以下内容的内容
  • 如何解决运算符“!=”不能应用于“T”和“T”类型的操作数[重复]

    这个问题在这里已经有答案了 此代码片段按预期工作int type public class Test public int Value get gt Value set if Value value Value value private
  • iOS:如何实现手写识别?

    开始iOS开发 我希望在我的应用程序中实现手写识别 我进行了谷歌搜索 但没有找到任何在 Objective C 中实现文本手势的教程 有没有可用的基本教程来实现文本手势 例如 当用户写入时A在屏幕上 屏幕应该显示A 这个项目有可用的演示教程
  • VBA数组排序功能?

    我正在寻找 VBA 中数组的合适排序实现 快速排序将是首选 或任何其他排序算法除了泡沫或合并就足够了 请注意 这是为了与 MS Project 2003 一起使用 因此应避免任何 Excel 本机函数和任何 net 相关的内容 Take a
  • 对 NSMutableDictionary 进行排序

    我有一个NSMutableDictionary那个映射NSString to NSString 尽管这些值是NSStrings 它们实际上只是整数 例如考虑以下映射 dog gt 4 cat gt 3 turtle gt 6 我希望最终得到
  • Android WebView SSL“安全警告”

    我正在为客户构建应用程序的测试版本 此应用程序的一部分使用调用基于 SSL 的站点的 WebView 反过来 客户端提供了一个测试域 其中证书名称与 FQDN 不匹配 唉 他们无法提供匹配的证书 我正在使用一行代码在配套的 iOS 特别应用
  • 远程访问 Team Foundation Server 2010

    我们是四个位于不同地点 彼此半径 100 公里 的开发人员 尝试在软件开发项目上进行合作 我们希望在一台计算机上安装 Team Foundation Server 2010 我们都使用 Windows 7 并将其用作我们的中央源代码存储库和
  • Jquery 正则表达式验证

    我想检查输入字段是否具有 模式 属性 如果是 则针对所述模式执行正则表达式检查 我知道 HTML5 已经完成了这一操作 但我想自己处理该事件 我收到此错误 未捕获的类型错误 对象 a zA Z 没有方法 测试 Check Perform R
  • 在主视图控制器的自定义单元格内使用 UIButton 中的 IBAction

    我创建了一个带有自己的 m h 和 xib 文件的自定义单元 在单元格中 我有一个 UIButton 已添加到 IB 中的 xib 中 我可以从这个自定义单元格的 m 中的 UIButton 接收 IBAction 但实际上 我想将该按钮按
  • Android - 获取计时器小部件的时间

    如何从天文台表获取时间 我尝试了 getText getFormat getBase 等 但它们都不起作用 示例代码片段 Chronometer t Chronometer findViewById R id toptime long ti
  • Object.toString 和 Object.prototype.toString 之间的不同

    我们可以用Object prototype toString call foo 检测对象类 foo 的类型 并且效果很好 但为什么Object toString call throw TypeError Function prototype
  • 日期时间选择器验证

    我很抱歉发布这个问题 因为它可能对所有人来说都很愚蠢 但我没有得到确切的解决方案 问题是 我的项目中有一个日期时间选择器 它位于表单中的 3 个文本框之后 如果文本框中没有输入任何文本并在提交时输入 它会给出一条消息 验证 表明数据将被进入
  • 当属性达到目的时,标记接口需要什么?

    我有点困惑 标记接口 Vs 的目的 属性 他们的目的在我看来是一样的 如果我错了 请原谅我 谁能解释一下它们的目的有何不同 以下是两者的一些优点 标记接口 使用动态类型检查更容易检查 对象是 IMarker 允许未来的功能和数据可扩展性 即
  • Logback 中的条件功能如何工作?

    我使用这个 logback 配置文件
  • div 末尾的淡入文本?

    是否可以使用 CSS 在 div 末尾附近水平淡入文本 例如这样 CSS 渐变和rgba会做这个工作 Demo 扩展文本版本 更新 div position relative display inline block div span di
  • 如何处理AsyncTask失败

    有没有特定的方法来处理 AsyncTask 中的失败 据我所知 唯一的方法是使用任务的返回值 如果可能的话 我希望能够提供有关失败的更多详细信息 并且 null 并不是很冗长 理想情况下 它会提供一个 onError 处理程序 但我认为它没