【发布时间】:2021-02-05 19:48:44
【问题描述】:
我开发了一个 android 应用程序,该应用程序在首次启动时将一些数据库从应用程序复制到设备的内部存储中。由于完成任务需要几秒钟,我决定在后台线程上运行它。当主要活动打开时,线程开始并继续它的工作。 我的问题是:如果用户在后台任务完成之前关闭活动,后台线程还会运行吗?还是线程也会被杀死?
【问题讨论】:
标签: java android multithreading android-activity
我开发了一个 android 应用程序,该应用程序在首次启动时将一些数据库从应用程序复制到设备的内部存储中。由于完成任务需要几秒钟,我决定在后台线程上运行它。当主要活动打开时,线程开始并继续它的工作。 我的问题是:如果用户在后台任务完成之前关闭活动,后台线程还会运行吗?还是线程也会被杀死?
【问题讨论】:
标签: java android multithreading android-activity
Android 中的线程 在 Android 中,您可以将所有线程组件分为两个基本类别:
附加到活动/片段的线程:
这些线程与活动/片段的生命周期相关联,并在活动/片段被销毁后立即终止。
未附加到任何活动/片段的线程:
这些线程可以在生成它们的活动/片段(如果有)的生命周期之后继续运行。
因此,就您的问题而言,当Activity 完成时,从活动创建的所有线程也会被销毁。希望这能回答您的问题!
有关更多信息,请参阅此link。我认为对于您的情况,您应该选择JobIntentService,因为它能够在完成工作后自动停止。
【讨论】: