完成活动是不是会破坏从活动创建的线程?

Posted

技术标签:

【中文标题】完成活动是不是会破坏从活动创建的线程?【英文标题】:Is finishing an activity destroy threads created from the activity?完成活动是否会破坏从活动创建的线程? 【发布时间】:2021-02-05 19:48:44 【问题描述】:

我开发了一个 android 应用程序,该应用程序在首次启动时将一些数据库从应用程序复制到设备的内部存储中。由于完成任务需要几秒钟,我决定在后台线程上运行它。当主要活动打开时,线程开始并继续它的工作。 我的问题是:如果用户在后台任务完成之前关闭活动,后台线程还会运行吗?还是线程也会被杀死?

【问题讨论】:

【参考方案1】:

Android 中的线程 在 Android 中,您可以将所有线程组件分为两个基本类别:

附加到活动/片段的线程: 这些线程与活动/片段的生命周期相关联,并在活动/片段被销毁后立即终止。未附加到任何活动/片段的线程: 这些线程可以在生成它们的活动/片段(如果有)的生命周期之后继续运行。 因此,就您的问题而言,当Activity 完成时,从活动创建的所有线程也会被销毁。希望这能回答您的问题! 有关更多信息,请参阅此link。我认为对于您的情况,您应该选择JobIntentService,因为它能够在完成工作后自动停止。

【讨论】:

以上是关于完成活动是不是会破坏从活动创建的线程?的主要内容,如果未能解决你的问题,请参考以下文章

从 Google Play 应用启动我的应用会破坏活动而不是恢复

android - 从活动调用完成会破坏托管片段吗?

活动后线程未完成

杀死或停止活动线程

Android Studio 内存泄漏活动未在线程中完成

如果我不加入发布版本中的“破坏”线程怎么办?