AsyncTask 从不执行 onPostExecute

2023-12-03

我正在尝试执行以下 AsyncTask :

private class TimeUpdateTask extends AsyncTask<List<mObject>, Integer, Void> {

        @Override
        protected Void doInBackground(List<mObject>... params) {
            mObject o;
            int i;
            int numChecked = 0;

            List<mObject> mObjects = params[0];
            while(true)
            {   
                if (isCancelled())
                {
                    Log.w("TAG", "task interrumped");
                    return null;
                }

                    for (i=0 ; i < mObjects.size() ; i++)
                    {
                        o = mObjects.get(i);
                        if (!o.isChecked())
                        {
                            o.calculateProgress();
                            if (o.isChecked())
                            {
                                numChecked++;
                            }
                        }
                    }
                publishProgress(numChecked);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }

            }
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void onProgressUpdate(Integer... param){
            int progressCompleted = param[0];

            ((ArrayAdapter<mObject>) EventListView.this.EventView.getAdapter()).notifyDataSetChanged();

            mMain.setProgressBarCompleted(progressCompleted);
        }

        /*This should execute*/
        @Override
        protected void onPostExecute(Void result) {
            Log.d("TAG","End onPostExecute");
         }

    }

所以当我打电话时cancel(false)在这个任务上,onPostExecute应该被执行,但它从未被执行。

是代码有问题还是其他什么问题? 我看了很多答案,似乎有#5AsyncTask即使您目前只使用一个(如我的情况),闲逛也是正常的。


这里缺少一大块你必须了解的内容。

来自开发人员文档(请参阅下面的粗体文本):http://developer.android.com/reference/android/os/AsyncTask.html#cancel(boolean)

尝试取消此任务的执行。如果出现以下情况,此尝试将会失败 任务已完成、已取消或无法完成 因其他原因被取消。如果成功,并且此任务已 调用取消时未启动,该任务永远不应该运行。如果 任务已经开始,那么mayInterruptIfRunning参数 确定执行此任务的线程是否应该 被中断以试图停止任务。

调用此方法将导致调用 onCancelled(Object) doInBackground(Object[]) 返回后在 UI 线程上。呼唤 此方法保证永远不会调用 onPostExecute(Object)。调用该方法后,您应该检查返回的值 isCancelled() 定期从 doInBackground(Object[]) 完成 尽早完成任务。

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

AsyncTask 从不执行 onPostExecute 的相关文章

  • 如何使用 (a)smack 在 Android 上保持 XMPP 连接稳定?

    我使用适用于 Android 的 asmack android 7 beem 库 我有一个后台服务正在运行 例如我的应用程序保持活动状态 但 XMPP 连接迟早会在没有任何通知的情况下消失 服务器表示客户端仍然在线 但没有发送或接收数据包
  • PhoneGap 是应用程序开发的好选择吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • 注销时Firebase facebook按钮android身份验证

    我在我的 Android 应用程序中使用 firebase 并在 facebook SDK 中使用登录 我面临的唯一问题是 当我使用 facebook 登录然后注销时 facebook 登录按钮处于 注销 状态 当我单击它时 它会询问我是否
  • Android Things 文件系统

    我正在 Android 上构建这个应用程序 我希望能够让它访问 U 盘上的媒体文件 甚至树莓派的 SD 卡上的媒体文件 我还不知道我将如何处理这些文件 但我只是想知道它是否可能 如果不是这样也没关系 我还有其他解决方案 但我想我会先从明显的
  • NullPointerException org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDragEvent

    大约 10 天前 我的应用程序开始记录此异常 在开发控制台上看到 java lang NullPointerException at org chromium android webview AwContents AwViewMethods
  • Android 在创建时出现 SQLiteException

    首先我想说我是android新手 所以如果这个问题太愚蠢我很抱歉 我正在为带有两个表的 SQLite 数据库编写一个内容提供程序 表格上是在导航抽屉活动中显示列表 第二个表格是在 ListFragment 中显示 每次启动应用程序时 我都会
  • 如何知道点击的widget id?

    我已经实施了一个widget与ImageButton and a TextView That ImageButton启动一个activity当它被点击时 这activity使用用户在活动上写入的内容更新小部件文本EditText 现在的问题
  • ImageButton 拉伸背景图像

    我正在尝试创建一个没有边框的 ImageButton 但遇到了图像按钮大小的问题 我使用 Eclipse ADT 将 ImageButton 拖到布局中并选择背景图像 图像按钮显示如下 正如您所看到的 背景图像和图像按钮周边之间有一个边框
  • Android 依赖项:apklib 与 aar 文件

    据我了解 apklib包含代码 共享资源Maven aar文件由以下人员分发Gradle The aar与 apklib 的主要区别在于 类被编译并包含在 aar 根目录下的classes jar 中 然而apklib不能包含已编译的类文件
  • 如何使用 onSearchRequested() 调用搜索对话框

    我正在尝试实现搜索对话框 但无法显示活动中的搜索 我在清单文件中定义了主要活动 此活动向用户显示了他们必须从中选择的选项列表 选项之一是 搜索 选项
  • NoClassDefFoundError:com.google.firebase.FirebaseOptions

    我继续得到NoClassDefFoundError在我正在使用的其他测试设备 4 4 2 上 但在我的测试设备 Android 5 1 上运行良好 我尝试了用谷歌搜索的解决方案 但似乎没有任何效果 我正在使用 Firebase 实时数据库
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • 改造Android基本且简单的问题

    我的服务器返回简单的 Json 结果 如下所示 message Upload Success 我正在尝试将结果放入改造模型类中 public class MyResponse SerializedName message String me
  • Android apk 调试模式工作正常,但发布模式给出太多警告

    我正在尝试从 eclipse 获取签名的 APK 我有一个可调试的 apk 版本 运行良好 现在发布时 当我尝试使用 Eclipse ADT 进行编译和签名时 我收到很多警告 其中大部分是can t find superclass or i
  • onTouch 给出奇怪的触摸点 Android

    我正在做的事情非常简单 我以前做过 但现在它没有按我的预期运行 无论如何 让我简要解释一下我正在尝试做什么以及我得到了什么 设想 我有一个RelativeLayout其中一个ImageView已放置 现在我设置touchlistener像这
  • TYPE_ACCELEROMETER 和 TYPE_LINEAR_ACCELERATION 传感器有什么区别?

    I think TYPE ACCELEROMETER显示设备加速 但是 我不明白什么时候应该使用TYPE LINEAR ACCELERATION 我需要计算移动设备的速度 哪种传感器适合此应用 另外 我读到TYPE LINEAR ACCEL
  • android-如何在谷歌地图上将标记的位置显示为地址

    我已经尝试过 commonsware googlemapsv2 教程 特别是在地图上拖动标记 但现在另一个问题困扰着我 问题是如何将标记的当前位置显示为地图下方或上方的地址 字符串 这是我使用的代码 public class MainAct
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca

随机推荐

  • 链接消费者 Java 8

    您好 我遇到以下问题 假设我们有对象 Account 该对象 Account 是不可变的 因此随着时间的推移 我们对其执行操作 实际上是将其转换为另一种状态 例如Account可以变成ClosedAccount或NewAccount等等 现
  • 在 Android Studio 中添加新模块时 java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB 错误

    添加新模块时出现奇怪的错误 https github com lomza android color picker 到我的项目 如果没有这个模块 项目运行正常 但是如果将此项目作为模块添加到我的主项目中并编译它 一切看起来都很好 但应用程序
  • 数据库速度优化:少表多行,还是多表少行?

    我有一个很大的疑问 让我们以任何公司订单的数据库为例 假设这家公司每月大约发出 2000 个订单 那么 每年大约 24K 个订单 他们不想删除任何订单 即使它已经有 5 年了 嘿 这是一个例子 数字并不意味着任何事物 就拥有良好的数据库查询
  • 将匿名函数传递给具有局部变量的命名函数时,Javascript 中的范围问题

    对这个标题感到抱歉 我不知道如何表达它 这是场景 我有一个构建元素的函数 buildSelect id cbFunc 在 buildSelect 中它执行以下操作 select attachEvent onchange cbFunc 我还有
  • 创建 PDF 的最佳 C# API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您能推荐任何适用于 C 的
  • awk 打印每个类别的所有最小值

    想要打印基于的所有最小值1 美元和 3 美元组合 如果有两条或多条线路可用 对于具有 1 和 3 唯一组合的最小值 则需要打印所有行 例如 1 Abc 的最小值 3 10 出现两次 即 Abc yyy 10 aaa 和 Abc ttt 10
  • CatBoost 精度不平衡类

    我使用 CatBoostClassifier 我的类高度不平衡 我应用了一个scale pos weight参数来解决这个问题 在使用评估数据集 测试 进行训练时 CatBoost 在测试中显示出很高的精度 然而 当我使用预测方法对测试进行
  • 使用jquery停止网页滚动

    我正在网页中使用查询凹凸盒插件 我正在处理 但在使用它时我仍然可以滚动离开凹凸盒 我想知道是否有某种 jquery 方法可以阻止网页滚动 或者只是以与用户滚动相同的距离向相反的方向滚动 由于没有发布代码 很难具体说明 但为了防止滚动 您可以
  • 尝试理解 Java 8 中的方法引用(将类方法分配给功能接口)[重复]

    这个问题在这里已经有答案了 我试图更好地理解方法引用是如何工作的 在这个例子中 我遵循了代码的逻辑 但我不明白这样做的价值 基本上 在 STEP 2 中的方法引用赋值之后 someMethod 被用作 MyInterface 的 displ
  • 删除 *.pyc 并重新运行 .py 脚本后出现奇怪的行为

    我有三个模块 one py def abc print Heeeeeeeeeeeiiiiiioooooooooo two py import one def defg one abc three py import os from time
  • sqlite3 列类型

    我正在开始一个新项目 该项目必须将数据转换为XML to db XMLs有自己的格式 不能用来填充db 我选择使用sqlite 因为它是一个嵌入式平台 我需要一个轻量级的库 我正在努力处理列类型 我写了下面的sql static int c
  • 在 C# 中使用 cmd 将文件从一个目录复制到另一个目录

    我需要将文件从一个目录复制到另一个目录并对该文件执行某些操作 我需要复制它cmd 而不是File Copy 因为我需要将副本作为ProcessStartInfo 您可以使用此代码并更改startInfo Arguments but C应该
  • ChromeDriver 仅支持 Chrome 版本 89

    使用 Azure DevOps 不知何故管道停止工作 并且在运行时无法完成测试ng lint ng e2e ng test watch false 这在本地运行时有效 16 43 25 I launcher Running 1 instan
  • as3 从另一个类调用 Main.as 文档类中的函数

    我确信这是一个受欢迎的问题 但我找不到我需要的确切答案 我只需要访问在 Main as 文档类中创建的一个或多个函数 我尝试了几种方法 但似乎都不起作用 这是我尝试过的一个例子 anotherClass as 这需要访问函数Main as
  • 交互失败discord.py按钮

    client command async def button ctx await ctx message delete await ctx send Support Tickets components Button label Gene
  • 将包含 ASCII 的字符串转换为 Unicode

    我从 HTML 页面获取一个字符串到我的 Java HTTPServlet 中 根据我的要求 我得到了显示汉字的 ASCII 代码 可以告诉我 没有空格 我怎样才能把这个字符串转换成Unicode HTML 代码
  • 从 HTML 按钮运行 Python 脚本

    P 我正在尝试实现一个将运行 Python 脚本的按钮forward py 让我的机器人前进 使用 Lighttpd Web 服务器 PHP 7 0 Python 脚本在终端窗口中执行时工作正常 但是当我尝试通过单击按钮运行它时 它不起作用
  • 推送到 GitHub 时出现 403 错误

    我正在尝试将一个新的本地分支 名为 haystack 推送到我的 github 存储库 git push u origin haystack 但我收到错误 错误 访问时请求的 URL 返回错误 403https github com Gra
  • 使用 jQuery 验证单选按钮

    在我的表单上有一组单选按钮 这是标记 div class optionHolder p class optionName Format p div class option checked div div
  • AsyncTask 从不执行 onPostExecute

    我正在尝试执行以下 AsyncTask private class TimeUpdateTask extends AsyncTask