应用程序关闭时线程是否停止?

时间:2016-05-26 19:46:35

标签: android multithreading service

  

即使启动服务的组件被销毁,服务也可以无限期地在后台运行。

线程有这个优势吗?

如果我们有一个从互联网上下载文件的帖子,如果我们关闭申请会停止吗? 我知道使用服务会更好,但是在应用程序作为服务关闭后线程会恢复工作吗?

1 个答案:

答案 0 :(得分:0)

应用程序关闭后,线程会继续运行。但是,根据线程消耗的资源量,它可以随时被操作系统杀死。我不确定你的用例是什么,但由于线程被杀死的可能性很高,你几乎肯定会使用服务来执行后台任务,例如下载文件。

如果您正在处理不应该被中断的后台线程(即使在启动线程的应用程序关闭之后),请使用服务并在前台启动该服务。这会在通知栏中创建一个图标,通知用户某些后台进程正在运行。这样做可以使您的服务不太可能被杀死。

来自android的文档:

  

前台服务是一种被认为是用户主动意识到的内容的服务,因此在内存不足时不会被系统杀死。前台服务必须提供状态栏的通知,该通知位于“正在进行”标题下,这意味着除非服务被停止或从前台删除,否则无法解除通知。

Android的服务文档是阅读更多内容的好地方:

https://developer.android.com/guide/components/services.html#Foreground

  

但是在应用程序作为服务关闭后线程会恢复工作吗?

如果线程永远不会被杀死并且您重新打开应用程序,则该线程仍在运行。但同样,由于操作系统很可能会杀死你的线程,因此服务应该用于长时间运行的后台任务。