进度条与 asyncTask 一起使用

2023-11-21

我想在屏幕上使用进度条而不是进度对话框。

我在 XML 视图文件上插入了一个进度条,我想让它在加载时显示,在不加载时禁用它。

所以我使用的是可见的,但它发生了,所以其余的数据下降了。

我应该如何在异步任务中使用进度条?我怎样才能显示和隐藏它?


这是一个最详尽的例子:

public class ScreenSplash extends Activity {

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen_splash);

        final ProgressBar progress = (ProgressBar)findViewById(R.id.progress);
        final TextView    textview = (TextView)findViewById(R.id.text);

        new MyWorker(this, progress, textview).execute();
    }
}


final class MyWorker extends AsyncTask<Void, Integer, Void> {
    private static final int titles[] = {R.string.splash_load_timezone,
                                         R.string.splash_load_memory,
                                         R.string.splash_load_genres,
                                         R.string.splash_load_channels,
                                         R.string.splash_load_content};
    private static final int progr[]  = {30, 15, 20, 25, 20};

    private int index;

    private final Activity parent;
    private final ProgressBar progress;
    private final TextView textview;

    public MyWorker(final Activity parent, final ProgressBar progress, final TextView textview) {
        this.parent = parent;
        this.progress = progress;
        this.textview = textview;
    }

    @Override
    protected void onPreExecute() {
        int max = 0;
        for (final int p : progr) {
            max += p;
        }
        progress.setMax(max);
        index = 0;
    }

    @SuppressWarnings("unchecked")
    @Override
    protected Void doInBackground(final Void... params) {
        /* Load timezone. this is very slow - may take up to 3 seconds. */
          ...
        publishProgress();

        /* Get more free memory. */
          ...
        publishProgress();

        /* Load channels map. */
          ...
        publishProgress();

        /* Load genre names. */
          ...
        publishProgress();


        /* Preload the 1st screen's content. */
          ...
        publishProgress();

        return null;
    }

    @Override
    protected void onProgressUpdate(final Integer... values) {
        textview.setText(titles[index]);
        progress.incrementProgressBy(progr[index]);
        ++index;
    }

    @Override
    protected void onPostExecute(final Void result) {
        parent.finish();
    }
}

用于显示/隐藏进度条使用progress.setVisibility(View.VISIBLE) and progress.setVisibility(View.GONE)。还有View.INVISIBLE持续的;它的区别在于GONE是你的进度条没有绘制,但仍然占据它的空间(对于某些布局有用)。

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

进度条与 asyncTask 一起使用 的相关文章

  • 发生存储异常。无法在firebase中上传图片

    在我能够更改图像并将其上传到 firebase 之前 这段代码就可以工作 但现在我突然收到此错误 我不知道问题是什么 public class SettingsActivity extends AppCompatActivity priva
  • 如何在android中点击画布上绘制的圆圈?

    我正在开发一个人脸检测应用程序 在这个应用程序中 我必须在脸上的眼睛和嘴巴用户可以点击拖动圆圈 在检测到的人脸上根据自己设置位置 因此 所有圆圈都已成功绘制在脸上 但我无法单击特定圆圈并使用缩小选项在整个脸上移动 请建议我有关相同问题的正确
  • 在phonegap中播放本地声音

    我有一个 wav文件在我的www文件夹 我正在使用 jQuery 和以下代码 警报响起 但声音不播放 难道我做错了什么
  • APK META-INF/library_release.kotlin_module 中复制的重复文件

    我最近通过 JitPack 添加了两个 Android 库 但出现以下错误 Duplicate files copied in APK META INF library release kotlin module 我已经清除了缓存 并尝试使
  • ActionBarCompat 支持库 android:selectableItemBackground 不起作用

    我正在使用新的 ActionBarCompat 支持库 操作栏中的操作按钮在按下时应更改其背景 它适用于 Android 4 3 但不适用于 Gingerbread 在姜饼中 如果我按下按钮 它不会改变背景 我什至改变了选择器 它再次适用于
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • Android 上的硬币识别

    我目前正在开发一个 Android 应用程序 它能够拍摄硬币的现有图像 或者使用内置摄像头扫描单个硬币 非常像 Google Goggles 我正在使用 Android 版 OpenCV 我的问题如下 什么方法最适合使用 OpenCV 在
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • 将 ArrayList 保存在捆绑包 savingInstanceState 中

    ArrayList 是在类级别定义的 这些是我保存的实例方法 Override protected void onSaveInstanceState Bundle outState super onSaveInstanceState out
  • 如何在不改变的情况下将字符串转换为字节?

    我需要一个解决方案将字符串转换为字节数组而不需要像这样进行更改 Input String s Test Output String s Test byte b Test 当我使用 s getBytes 那么回复是 B 428b76b8 但我
  • 对基本适配器类及其功能的疑问

    我正在尝试自定义列表视图 我使用数组列表添加对象列表 并将其发送到扩展基本适配器的类 当我扩展基本适配器类时 它实现了一些方法 例如 getView 等 在 getView 中 我将其发送到将名称 数据 分配给 XML 格式的自定义菜单的类
  • 改造Android基本且简单的问题

    我的服务器返回简单的 Json 结果 如下所示 message Upload Success 我正在尝试将结果放入改造模型类中 public class MyResponse SerializedName message String me
  • 如果联系人与电话通讯录中的应用程序关联,则显示应用程序图标

    我正在尝试显示与该应用程序关联的电话号码的应用程序图标 我试着跟随this http www c99 org 2010 01 23 writing an android sync provider part 1 链接但是太难了 有没有任何库
  • Android 将菜单项在操作栏中向左对齐

    我的应用程序中有一个操作栏 它显示我定义的菜单项res menu activity main xml 我的菜单项在操作栏上向右对齐 我希望它们左对齐 我为此找到的唯一解决方案使用了自定义操作栏 如下所示 将菜单项放置在 Honeycomb
  • 找不到资源矢量绘图的异常

    我将在某些设备上运行我的应用程序 其崩溃日志如下 01 04 16 54 02 206 7466 7466 com lawnmowers E AndroidRuntime FATAL EXCEPTION main Process com l
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • TYPE_ACCELEROMETER 和 TYPE_LINEAR_ACCELERATION 传感器有什么区别?

    I think TYPE ACCELEROMETER显示设备加速 但是 我不明白什么时候应该使用TYPE LINEAR ACCELERATION 我需要计算移动设备的速度 哪种传感器适合此应用 另外 我读到TYPE LINEAR ACCEL
  • Android:列“_id”不存在

    我收到这个错误 IllegalArgumentException 列 id 不存在 当使用SimpleCursorAdapter从我的数据库中检索 该表确实有这个 id柱子 注意到这是一个常见问题 我尝试根据网上的一些解决方案来解决它 但它

随机推荐

  • JavaScript - 字符串正则表达式反向引用

    您可以在 JavaScript 中像这样反向引用 var str 123 test 123 str str replace a z gi 2 这将 非常愚蠢 用 test 替换 test 但想象一下我想将 2 的结果字符串传递给一个函数 该
  • 如何在 IE9 中使用 MSHTML 的 addEventListener 添加事件侦听器?

    MSDN 文档为addEventListener表示它接受以下形式的回调函数IDispatch 目的 从 C 我使用 COM 互操作 Visual Studio 将参数类型显示为object 我找了一个IEventListener界面或类似
  • C# 从字符串中解析浮点数

    我正在从 XML 文件中读取数字 其他数字带有逗号分隔符 0 1111 其他数字带有点 0 1111 我如何解析这些数字才能最终得到所需的结果 我尝试使用float Parse reader Value System Globalizati
  • VisualSVN 服务器 3.2 - 意外的 HTTP 状态 405

    我在计算机上安装了 VisualSVN Server 以进行源代码控制 当我尝试通过存储库浏览器访问它时 出现错误 Unexpected HTTP Status 405 Method Not Allowed on 23WEB view he
  • Visual Studio 可以像 app.config 一样自动调整其他文件的名称吗?

    将应用程序配置文件添加到 Visual Studio 中的 Net 项目时 它将被命名为app config并将被重命名 在构建时 为ApplicationName config 我有一个包含大约 40 个项目的解决方案 我想为其中一些添加
  • 从列表中删除重复的元素

    我有一个list of character vectors my list lt list e1 c a b c k e2 c b d e e3 c t d g a f 我正在寻找一个function对于任何character出现不止一次l
  • 将数据从 firestore 导入 bigQuery

    我已将我的帐户升级为 blaze 这是先决条件之一 我尝试遵循FAQ将 BigQuery 链接到 Firebase 仍然无法看到从 firestore 或 firebase realtimeDatabase 到 bigQuery 的任何数据
  • aws sns 确认订阅请求处理问题

    我正在尝试为 s3 中的存储桶实现 aws sns 服务 并且我正在关注此文档https docs aws amazon com sns latest dg SendMessageToHttp html据此 确认订阅的请求中将有订阅 url
  • Java中的单继承作弊?

    我听说有一种方法可以欺骗单继承并在Java中实现多重继承 有谁知道如何实现这个 不使用接口 只是出于好奇 当然可以 但这很棘手 您应该认真考虑这是否是您想要的方式 这个想法是使用基于范围的继承和基于类型的继承 这是类型对话 表示出于内部目的
  • jquery ui sortables 连接列表:复制项目

    我有两个列表 我希望它们都可以排序 并且希望能够将项目从 list1 复制 拖动 到 list2 反之亦然 http jqueryui com demos sortable connect lists 是我想要的 但项目被移动 而不是复制
  • 圆-矩形碰撞检测(交叉点)

    如何判断圆形和矩形在二维欧几里得空间中是否相交 即经典的二维几何 我将这样做 bool intersects CircleType circle RectType rect circleDistance x abs circle x rec
  • 如何使用 PHP 将文件从服务器复制到 Dropbox? [复制]

    这个问题在这里已经有答案了 我想我可能找到了一个 PHP 程序 可以将特定文件夹中的文件上传到我的 Dropbox 帐户 完整的解决方案可以找到here 该代码似乎有效 因为正在上传类似的文件和文件夹 但是 我不希望预先压缩服务器上的文件
  • 仅使用 javascript 列出目录中的文件

    是否可以仅使用 javascript 列出目录中的文件 为了澄清 我的意思是列出服务器上的文件 而不是客户端计算机上的文件 例如 www domain com files 包含 4 张图片 jpg 我可以创建一个额外的页面 www doma
  • 在 RMarkdown 中缩进而不添加项目符号点或数字

    我想制作一个缩进列表 但我不希望它有要点或数字 我在 RStudio 中使用 Rmarkdown 并编织为 html bla bla bla Example indented line with bullet point Another i
  • 使用来自多个点的多个图像构建 3D 模型 (kinect)

    如果从不同角度收集各种图像和深度数据 是否可以构建静止物体的 3D 模型 我的想法是有一种圆形传送带 其中将放置 kinect 并且传送带同时要在 3D 空间中重建的真实物体位于中间 此后传送带围绕图像旋转一圈 并捕获大量图像 可能每秒 1
  • python numpy 机器 epsilon

    我想了解什么是机器 epsilon 根据维基百科 可以计算如下 def machineEpsilon func float machine epsilon func 1 while func 1 func machine epsilon f
  • Java 6 源代码向后兼容性和 SQL

    我的理解是 为了保持源兼容性 Java 永远不会向公共接口引入新方法 因为这会破坏实现接口的现有客户端 Java 发行说明 states 一般来说 政策如下 除了任何不兼容的情况 进一步列出如下 维护版本 例如 1 4 1 1 4 2 不引
  • jQuery .attr("disabled", "disabled") 在 Chrome 中不起作用

    不知道为什么这不起作用 当人们单击我的应用程序的 编辑 按钮时 禁用的文本字段将变为可编辑 bewerken click function e input disabled disabled removeAttr disabled 然后 我
  • 如何修复错误; “错误:Bootstrap 工具提示需要 Tether (http://github.hubspot.com/tether/)”

    我正在使用 Bootstrap V4 控制台中记录了以下错误 错误 Bootstrap 工具提示需要 Tether http github hubspot com tether 我尝试通过安装 Tether 来消除该错误 但没有成功 我通过
  • 进度条与 asyncTask 一起使用

    我想在屏幕上使用进度条而不是进度对话框 我在 XML 视图文件上插入了一个进度条 我想让它在加载时显示 在不加载时禁用它 所以我使用的是可见的 但它发生了 所以其余的数据下降了 我应该如何在异步任务中使用进度条 我怎样才能显示和隐藏它 这是