Android:暂停/恢复计时器或线程

2024-02-28

我已经检查了有关如何暂停/恢复计时器的所有答案,但找不到解决方案。

我创建了一个计时器任务,它计算员工的工作时间并将其放入 TextView 中进行显示。

代码如下:

Timer T = new Timer();
    T.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    String workingTime = "Your effort is "
                            + format.format(Double.valueOf(hr)) + ":"
                            + format.format(Double.valueOf(min)) + ":"
                            + format.format(Double.valueOf(sec))
                            + " till now for the day";
                    storeEffort.setText(workingTime);
                    sec++;
                    if (sec > 59) {
                        sec = 0;
                        min = min + 1;
                    }
                    if (min > 59) {
                        min = 0;
                        hr = hr + 1;
                    }
                }
            });
        }
    }, 1000, 1000);

where 商店努力是我的 TextView,它显示了卡在正在运行的线程中的工作时间(主要问题)。我想通过单击按钮暂停工作计时器,并在再次单击同一按钮时恢复计时器。还有其他方法可以完成此类任务吗?


您的解决方案可能有一个小问题 - 您正在使用计时器来计算时间间隔,但实际上没有必要。你可以使用即StopWatch http://docs.guava-libraries.googlecode.com/git/javadoc/src-html/com/google/common/base/Stopwatch.html#line.76来计算经过的时间。因此,您不必在计时器作业中添加秒数,而是可以从此计时器获取经过的时间。要暂停计时器,您可以调用stopWatch.stop()要启动它,你可以调用stopWatch.start().

它可能看起来像这样:

Stopwatch stopwatch = Stopwatch.createStarted();

void startThreadUpdateTimer(){}
    Timer T = new Timer();
    T.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    String workingTime = "Your effort is " + sw.toString() + 
                         " till now for the day";                        
                }
            });
        }
    }, 1000, 1000);
}

public void pause(){
    if(stopwatch.isRunning()){
        stopwatch.stop();
    }
}

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

Android:暂停/恢复计时器或线程 的相关文章

  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • libgdx 将窗口定位在舞台之外

    我想知道如何使用 MoveToAction 或任何方法 将 scene2d 窗口定位在舞台之外 我希望菜单能够滑入和滑出 我的舞台和皮肤存储在我的世界级中 这些方法目前工作正常 但根本没有动画效果 Window window new Win
  • AVPlayer无法播放

    我想用 AVPlayer 播放远程 mp3 我无法让它工作 我也看不出它不起作用的原因 代码 NSString urlstr some link to a mp3 NSURL url NSURL URLWithString urlstr s
  • GS1-128条码解析

    扫描仪型号 Motorola DS4208 HC 我们需要解析 GS1 128 条形码 我们知道他们将使用 GTIN 01 批号 10 有效期 17 序列号 21 输入字符串 01 07612345678900 17 100503 10 A
  • 如何避免单个像素线在wpf中消失?

    我使用路径element StrokeThickness 1 SnapsToDevicePixels True 在网格中 我想调整窗口大小 Grid 元素被 Viewbox 元素包裹 Problem 当我调整窗口大小时 路径有时会消失 如果
  • 使用导航组件时从子级获取父级片段

    我需要将数据从一个片段传输到另一个片段 现在推荐的方法是使用共享ViewModel 为了在两个片段中获得相同的实例 需要共同的所有者 因为这可能是他们的共同点Activity 但通过这种方法 在单一活动的情况下 ViewModel实例将存在
  • 跨浏览器自定义复选框

    I have HTML and CSS我用来构建自定义复选框的代码 我相信我的代码具有正确的网络工具包 但它似乎不适用于 FireFox 这是代码 HTML
  • Delphi 带有 HTML/CSS 界面

    我想开发一个带有 HTML CSS 图形用户界面的 delphi 应用程序 不一定在 Web 浏览器中运行 我想这样做 创建一个更丰富的带有动画等的图形用户界面 并摆脱正常的 VCL 组件 Windows 外观 有什么建议么 HTML 和
  • 指针数组的大小

    我对 sizeof 运算符有疑问 Code 1 int main int p 10 printf d sizeof p output 40 return 0 Code 2 int main int p 10 printf d sizeof
  • 在 APK 文件中嵌入登录详细信息,每个用户都不同(或其他选项?)

    我们被要求为一家拥有现有网站和现有用户的公司创建一个 Android 瘦 Web 客户端 他们想要向用户发送彩信 为每个用户提供自己的下载 URL 该 URL 将指向专门为该用户创建的 Android apk 文件 它将包含该用户的网站登录
  • jQuery DataTables:控制表宽度

    我在使用 jQuery DataTables 插件控制表格宽度时遇到问题 该表应该是容器宽度的 100 但最终是任意宽度 而不是小于容器宽度 感谢建议 表声明看起来像这样 table class display cellspacing 0
  • 使用 texelFetch() 进行纹理化

    当我将非最大值传递到纹理缓冲区时 在渲染时它会绘制具有最大值颜色的几何图形 我在使用 glTexBuffer API 时发现了这个问题 例如 假设我的纹理数据是GLubyte 当我传递任何小于255的值时 那么颜色与用255绘制的颜色相同
  • 只更新更改的字段还是全部字段?

    我想知道在更新记录以检索现有记录 循环遍历字段检查更改并仅将更改的字段放入更新查询中是否值得花费服务器时间 我正在使用 MySQL 和 PHP 这样做的主要原因是为了减少更改日志的更新查询的大小 通常查询可能有 15 个字段 但实际上只有
  • Heroku - '@heroku/buildpack-registry 无法从 @heroku-cli/plugin-buildpacks 访问'

    我尝试通过 Heroku 启动我的 Nuxt SSR Universal 应用程序 因为 Netlify 不再满足我的需求 我需要后端功能 按照教程进行操作here https nuxtjs org faq heroku deploymen
  • 创建任务板模板

    基本想法是 我希望能够制作一个新的承包商任务板主模板 我将有一个称为承包商集成的迭代路径 里面有一个主模板 其中有 4 个故事 每个故事有 10 个任务 我希望能够通过更改分配给它的名称来为每个新来的人使用此模板 因此 每次我招募新人时 都
  • 组件属性不支持复杂内容(混合 C# 和标记)

    我正在尝试使用 Razor 参数并将其传递到 Blazor 中进行进一步处理 但在我尝试构建的 onclick 事件上收到此错误消息 组件属性不支持复杂内容 混合 C 和标记 img 标签如下 tr for int j 0 j lt Can
  • 宝石安装 ffi -v '1.1.5' osx 10.8

    我一直在尝试通过以下方式在 OSX 10 8 上安装 ffi gem install ffi v 1 1 5 结果 ERROR Error installing ffi ERROR Failed to build gem native ex
  • Pytest 不选取类内的测试方法

    一直使用Pythonunittest2 并且刚刚开始迁移到pytest 当然 我试图进行比较 但我无法弄清楚的一件事是 Question为什么 Pytest 不选择 测试 类中定义的测试方法 什么对我有用 login test py imp
  • 可以更少地引用扩展属性吗?

    是否有可能以更少的时间扩展扩展财产 我在一个 分布式 文件中有定义 需要添加 important在我的特殊情况下 现有财产 例如 我有一个定义此类的 less 文件 pfx grey light bg background color e5
  • 从命令行将文件包含在项目中

    有没有办法在 vs2012 中从命令行将文件包含在项目中 我之所以问这个问题 是因为每当我使用其他 IDE 如 ST3 或从 Photoshop 等保存文件时 将添加到项目文件夹中的任何新文件包含在内是非常令人沮丧的 我正在使用 Grunt
  • Android:暂停/恢复计时器或线程

    我已经检查了有关如何暂停 恢复计时器的所有答案 但找不到解决方案 我创建了一个计时器任务 它计算员工的工作时间并将其放入 TextView 中进行显示 代码如下 Timer T new Timer T scheduleAtFixedRate