如何停止Android应用程序中的所有工作线程

2023-11-21

如何在不停止主线程的情况下停止Android应用程序中所有正在运行的工作线程?

有这方面的例子吗?


其实线程有方法stop(),因此您可以检查所有工作线程并在每个线程上调用此方法。

问题是“从哪里获取工作线程列表?” 更好的解决方案是将此列表存储在应用程序级别的某个位置,即每次创建工作线程时将其放入特殊列表中。这是更好的解决方案,因为您并且只有您知道该线程是“工作”线程。

但理论上,您甚至可以动态发现您的应用程序并检索线程。有静态方法Thread.enumerate(Thread[] threads)填充提供的数组。但如何知道现在有多少线程在运行呢?使用Thread.activeCount().

Thread[] threads = new Thread[Thread.activeCount()];
Thread.enumerate(threads);
for (Thread t : threads) {
    if (isWorkerThread(t)) {
        t.stop();
    }
}

由您来确定您的工作线程。例如,您可以为此使用线程的名称或线程的堆栈跟踪。

但调用已弃用的方法是犯罪行为stop()。请参阅该方法的javadoc以了解原因。

“正确”的方法是在应用层实现优雅关闭机制。每个线程应该检查一些标志,该标志表明线程是否应该关闭,并且当标志为真时从run()方法。在这种情况下,关闭工作线程非常简单:只需将此标志的值设置为 true,线程就会自行终止。这是“正确”的解决方案。

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

如何停止Android应用程序中的所有工作线程 的相关文章

  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Android Studio 与本地网络共享上的项目文件

    这是我的设置 Android Studio 项目文件位于 Ubuntu 14 10 盒子上的共享文件夹中 尝试在 Windows 8 机器上运行 Android Studio 1 0 2 并将 U 驱动器映射到包含项目文件的 Ubuntu
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • Mipmap 与可绘制文件夹[重复]

    这个问题在这里已经有答案了 我正在使用 Android Studio 1 1 Preview 1 我注意到 当我创建一个新项目时 我得到以下层次结构 不同 DPI 的 Mipmap 文件夹 不再有不同 DPI 的可绘制文件夹 我应该将所有资
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 卡片视图 单击卡片移至新活动

    我是 Android 编程新手 正在研究卡片布局 我想知道如何使其可点击 android clickable true android foreground android attr selectableItemBackground 我的卡
  • 插件“Android Bundle Support”不兼容

    大家好 自从上次更新以来 当我启动 android studio 时 我遇到了一个非常奇怪的错误 我有这个错误 插件错误 插件 Android Bundle Support 不兼容 直到构建 AI 195 SNAPSHOT 我在网上找不到任
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • org.hibernate.PropertyAccessException:IllegalArgumentException

    我正在研究 hibernate 映射 除了当 hibernate 尝试将我的对象保留到系统中时遇到的 PropertyAccessException 之外 其他一切都工作正常 下面是堆栈跟踪 org hibernate PropertyAc
  • 使用角色模拟租户

    我们正在开发一个基于 keycloak 5 0 0 的解决方案 我们的客户可以在我们这里创建他们的帐户并管理他们自己的用户 并且仅管理他们的用户 最初我们认为我们可以使用领域来实现这一点 每个客户都有自己的领域 经过初步测试后 我们认为这可
  • Python脚本通过FTP上传文件

    我想编写一个脚本来将文件上传到 FTP 登录系统如何工作 我正在寻找这样的东西 ftp login mylogin ftp pass mypass 以及任何其他登录凭据 Use ftplib 你可以这样写 import ftplib ses
  • 从 gitignore 过滤文件和路径

    我想找到所有文件路径not使用 C 通过 gitignore 或子目录中任何嵌套的 gitignore 文件 进行过滤 这类似于在这里提问关于PHP 我想知道是否有人知道这段代码是否已在网上某处提供 以 C 形式 更新 为了回答我想要这个的
  • 在 SQL 中选择不同的值对

    我有一个 Access 2010 数据库 其中存储源计算机和目标计算机的 IP 地址 如果我的数据库中有以下条目 source destination A B B A A B C D D D 是否有任何查询来选择唯一对 也就是说 查询的输出
  • 在 python 中捕获 Ctrl+C / SIGINT 并优雅地退出多进程[重复]

    这个问题在这里已经有答案了 How do I catch a Ctrl C in multiprocess python program and exit all processes gracefully I need the soluti
  • 如何阻止 Symfony 记录 Doctrine 的 sql 查询?

    我有一个奇怪的问题 当我检查我的app log dev log我可以在我的页面中看到几乎所有的查询dev log正在实时登录 2015 01 27 06 57 22 doctrine DEBUG SELECT t0 username A 2
  • 简单地将 JavaScript 中的 GET 请求获取到 Flask 服务器

    我正在尝试将一些 json 数据从 Flask 服务器显示到我的 html 页面 但我有一个TypeError NetworkError when attempting to fetch resource with a Promise
  • jQuery 从 url 生成面包屑?

    有没有办法让 jQuery 从 url 在页面上生成面包屑 因此 如果网站网址为 mysite com sec1 sec2 page 面包屑会是这样的 首页 gt 第一节 gt 第二节 gt 页码 Thanks 这将创建一个可用于生成面包屑
  • 在共享元素活动转换中对嵌套视图进行动画处理时出现故障?

    我一直在摆弄 Android 5 0 中的新 API 并一直在尝试弄清楚是否可以同时为ViewGroup及其子元素之一在一次操作期间分别作为共享元素活动转换 下面的屏幕截图给出了我想要实现的目标的简化示例 在第一个活动中 深灰色框是View
  • 弹出窗口 ContentSize 在 iOS 8 中没有响应

    我有一段代码如下 self popOverController popoverContentSize CGSizeMake 248 0 216 0 这在 iOS 7 及更低版本中运行良好 但是 它不会响应 iOS 8 中的 CGSizeMa
  • 在 php 中将关联数组转换为其值的简单数组

    我想转换数组 Array category gt category post tag gt post tag nav menu gt nav menu link category gt link category post format g
  • 如何在 C#/.NET 中查找本地计算机的 FQDN?

    如何在 C 中获取本地计算机的 FQDN 注意 此解决方案仅在针对 NET 2 0 及更高版本 框架时有效 using System using System Net using System Net NetworkInformation
  • Google电子表格api请求的身份验证范围不足

    我正在制作一个脚本 在 Nodejs 上使用以下脚本从 google 电子表格读取数据 var url oauth2Client generateAuthUrl access type offline approval prompt for
  • 在 JavaFX 中动态添加 CSS 样式表

    我想添加一个位于文件系统某处的 CSS 文件 目的是编写一个应用程序 用户可以在其中动态添加 JavaFX CSS 文件 由任何人创建并位于任何地方 我尝试了类似的方法 仅用于测试 看看动态添加的 CSS 文件是否有效 public cla
  • Android 将项目添加到全局上下文菜单

    当您长按 Android 中的某个内容时 会出现一个上下文菜单 我想为所有人添加一些内容到这个上下文菜单中TextViews在系统中 例如 系统通过复制和粘贴来执行此操作 我想添加我自己的 并让它出现在每个应用程序中 在您的文件 andro
  • 任务“:app:desugarDebugFileDependencies”执行失败

    我正在尝试运行 Flutter 应用程序 但不断在控制台中获取以下输出 Launching lib main dart on Android SDK built for x86 in debug mode FAILURE Build fai
  • Django 中的条件包含标签

    我遇到了 Django 模板系统非常奇怪的行为 我有一个模板文件 即test html 它递归地包含自身 include test html 当然 这样的模板没有机会被渲染 因为没有完成条件 好的 让我们尝试以下操作 if test fal
  • 按照设计,为什么在声明委托类型时必须指定参数名称?

    为什么必须指定参数名称x如下 public delegate void XXX int x 声明委托类型时 对我来说 参数名称x未使用 因此如果我们可以重写如下会更简单 public delegate void XXX int 请让我知道为
  • 如何停止Android应用程序中的所有工作线程

    如何在不停止主线程的情况下停止Android应用程序中所有正在运行的工作线程 有这方面的例子吗 其实线程有方法stop 因此您可以检查所有工作线程并在每个线程上调用此方法 问题是 从哪里获取工作线程列表 更好的解决方案是将此列表存储在应用程