java - 完成一个活动是否会破坏从该活动创建的线程?
问题描述
我开发了一个 android 应用程序,它在第一次启动时将一些数据库从应用程序复制到设备的内部存储中。由于完成任务需要几秒钟,我决定在后台线程上运行它。当主要活动打开时,线程开始并继续它的工作。我的问题是:如果用户在后台任务完成之前关闭活动,后台线程还会运行吗?或者线程也会被杀死?
解决方案
Android 中的线程在 Android 中,您可以将所有线程组件分为两个基本类别:
附加到活动/片段的线程:
这些线程与活动/片段的生命周期相关联,并在活动/片段被销毁时终止。
未附加到任何活动/片段的线程:
这些线程可以在生成它们的活动/片段(如果有)的生命周期之后继续运行。
因此,就您的问题而言,从活动创建的所有线程在Activity
完成时也会被销毁。希望这能回答你的问题!
有关更多信息,请参阅此链接。我认为您应该选择您的情况,JobIntentService
因为它能够在完成工作后自动停止。
推荐阅读
- openssl - 当我使用 openssl -starttls 命令连接 smtp 时,我无法停止编写电子邮件正文。(分 7)
- c# - 使用接口变量在域模型中潜在地保存不同类的对象是否合法?
- java - 如何 1) 删除 2) 使用正则表达式从 Java 字符串中获取列表项标签?
- java - Thread.sleep 没有抛出 InterruptedException
- elasticsearch - ElasticSearch 文档有存档机制吗?
- python - 将字符串传递给 Invoke
- javascript - p5.js:在 html 元素之上渲染画布而不阻塞鼠标交互
- apache-spark - Pyspark:org.apache.spark.memory.SparkOutOfMemoryError:无法获取 116 字节的内存,得到 0
- json - 如何将新对象添加到现有的 json 数据
- javascript - 无法在使用 Bootstrap 设置样式的列表元素中放置换行符