我们有什么钩子可以在应用程序退出时终止工作线程

2023-12-19

我正在从应用程序的“主”线程生成新的工作线程。只要应用程序处于活动状态,这些线程就不断需要执行某些操作。而且,当应用程序退出时,我确实希望正确清理所有工作线程(无论这意味着什么)。为了做到这一点,生命周期方法是唯一的地方吗?应用程序退出时是否会收到意图/通知?如果是,我们可以在此类意图/通知上注册广播接收器来执行所需的清理吗?

Thanks,

Ashok.

Code Snippet:

导入 android.app.Activity; 导入 android.os.Bundle; 导入 android.util.Log;

公共类 SomeThreadTest 扩展 Activity { /** 在第一次创建活动时调用。 */ 线程 t = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    t = new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            while (true) {
                try {
                    Thread.sleep(15000);
                    Log.d("SomeThreadTest", "Thread wokeup now");
                } catch (InterruptedException e) {
                    Log.d("SomeThreadTest", "Thread interrupted exception called!");
                    e.printStackTrace();
                    return;
                }

                if (Thread.interrupted()) {
                    Log.d("SomeThreadTest", "I'm interrupted!");
                }
            }
        }
    }, "TestThread");

    t.setDaemon(true);
    t.start();
}

}


考虑调用workerThread.setDaemon(true),它告诉线程是服务提供者,并在非守护程序主线程退出时杀死我。

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

我们有什么钩子可以在应用程序退出时终止工作线程 的相关文章

随机推荐

  • 如何从 Entity Framework 4.3 升级到 EF 5

    目前我们正在开发 EF 4 3 我们想将其升级到 EF5 我用谷歌搜索了升级过程步骤 但没有得到任何结果 请帮我 谢谢 以下是我在 EF4 3 到 EF5 上创建的内容的两个链接 文章 将现有项目迁移到 EF 5http msdn micr
  • Hibernate:在级联删除项目时清理集合的二级缓存

    我有一个问题 Hibernate 不会为级联删除的项目集合更新二级缓存 Details 假设我们有一个对象 Parent 其中包含 Child 对象的 Parent myChildren 集合 现在我们还有 Humans 对象和 Human
  • 计算我的位置与 Swift 上的 MapKit 图钉之间的距离

    我需要你的帮助 我正在开发一个应用程序 其中有一些图钉 位置 我想要的是获取每个图钉与我的位置之间的距离 我的代码如下 let annotation MKPointAnnotation let annotationTwo MKPointAn
  • 线程池 - 可能的线程执行顺序问题

    我一直在学习如何使用线程池 但我不确定池中的每个线程是否都正确执行 并且我怀疑有些线程被执行多次 我已将代码削减到最低限度 并一直使用 Debug WriteLine 来尝试弄清楚发生了什么 但这会产生一些奇怪的结果 我的代码如下 基于 不
  • 有人在没有ant的情况下使用webtest吗?

    我想尝试使用 WebTest 最好是来自 Clojure 但我只能找到它作为 Ant 任务公开的功能 似乎有某种 Groovy 接口 这意味着可以从 Ant 之外的任何 JVM 语言使用 但我无法弄清楚 我希望使用 WebTest 作为 可
  • 如何使用java更新Google App Engine中数据存储的字段值

    我在数据存储中创建了一个登录名 种类 在登录内部 我创建了两个字段用户名和密码 当用户更改密码时 我想更新数据存储内的字段值 但是当我使用这段代码时 DatastoreService datastore DatastoreServiceFa
  • Jest不能处理insertAdjacentElement吗?

    我想测试一个非常简单的JS函数 export function displaySpinner const loadingOverlayDOM document createElement DIV const spinner document
  • 过滤流数据以减少噪声,卡尔曼滤波器c#

    我正在将数据从惯性传感器流式传输到 C 应用程序中 数据有点嘈杂 所以我需要添加一个过滤器来平滑它 我有一个卡尔曼滤波器实现 在给定数组时效果很好 但我无法理解如何在恒定数据流上使用它 I have double sensorData th
  • 安装应用程序包装脚本wrap.sh

    Android 提供了一种非常强大的方法来控制应用程序进程启动 它就是所谓的包装脚本 https android googlesource com platform frameworks base master services core
  • 在 Visual Studio 2010 的 C++ 中使用 lapack C 标头时出现错误

    请帮我 我在网上查了好几个小时还是没有找到解决办法 我正在尝试使用 call lapack 函数C 功能 但我一开始就失败了 这是我的代码 include stdafx h include targetver h extern C incl
  • 需要有关在 SQL Server 上使用 SqlBulkCopy 突破极限的建议

    我正在设计一个应用程序 其中一个方面是它应该能够将大量数据接收到 SQL 数据库中 我将数据库结构设计为具有 bigint 标识的单个表 如下所示 CREATE TABLE MainTable id bigint IDENTITY 1 1
  • 在同一包中创建单独的文件夹... [ECLIPSE]

    Eclipse 是否可以在包中创建单独的文件夹 当选择 新建 gt 文件夹 时 我的eclipse版本总是创建一个包 但我希望新文件夹位于旧包中 如何才能实现这一目标 提前致谢 Patrick 如果您没有将代码放入该文件夹中 您可能想要做的
  • 如何在 R 中绘制图例而不绘制符号并且仍然使其很好地对齐?

    我可以创建一个没有绘图符号并且文本本身适合边框的绘图图例吗 例如 在以下代码中 我想要删除的图例文本之前有一个间隙 plot c 1 2 3 c 1 1 1 abline v c 1 5 2 2 5 col c blue red green
  • 区分大小写 Kotlin /ignoreCase

    我试图忽略字符串的大小写敏感性 例如 用户可以输入 巴西 或 巴西 就会触发乐趣 我该如何实施 我是科特林新手 fun questionFour val edittextCountry findViewById
  • 从反应中获取多个输出

    我需要从闪亮的反应组件中获得多个输出 例子 output a output b lt reactive a lt input abc b lt input abc 10 a b 如何完成类似上面的事情 通过它我可以获得两个输出a and b
  • Epub.js - 由于 blob URI,Phonegap 无法工作

    我正在使用 Epub js 库在 Phonegap 项目中渲染 epub 文件 文件被正确获取并解压缩 但如果在 WebView 中运行 屏幕会显示空白 在桌面和 Android 浏览器 Chrome 应用程序 中完美运行 调试 我看到if
  • 选择父菜单应显示子菜单

    我正在开发一个 Wordpress 网站并尝试显示我的菜单 如图所示 如何在选择父菜单时显示子菜单 您可以像这样创建带有辅助嵌套的主要顶部链接 ul class primary li Tutorial li ul class seconda
  • SQL 效率:WHERE IN 子查询与 JOIN then GROUP

    例如 我想获取应用了某些标签的所有项目的列表 我可以执行以下任一操作 SELECT Item ID Item Name FROM Item WHERE Item ID IN SELECT ItemTag ItemID FROM ItemTa
  • NSData 到 NSString 转换问题!

    我收到一个 NSData 的 html 文件 需要解析它以提取一些信息 我的方法是将其转换为带有UTF8编码的NSString html有非英语字符 例如俄语 它失败了 我用过类似的东西 NSString respData NSString
  • 我们有什么钩子可以在应用程序退出时终止工作线程

    我正在从应用程序的 主 线程生成新的工作线程 只要应用程序处于活动状态 这些线程就不断需要执行某些操作 而且 当应用程序退出时 我确实希望正确清理所有工作线程 无论这意味着什么 为了做到这一点 生命周期方法是唯一的地方吗 应用程序退出时是否