Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果一个Android服务被杀死,该服务产生的线程也会被杀死吗?_Android_Multithreading_Service - Fatal编程技术网

如果一个Android服务被杀死,该服务产生的线程也会被杀死吗?

如果一个Android服务被杀死,该服务产生的线程也会被杀死吗?,android,multithreading,service,Android,Multithreading,Service,假设我实现了一个服务,该服务启动执行长时间运行操作的线程。 如果服务被终止,会自动终止那些正在运行的线程吗 谢谢。除非您在清单中另有规定,否则服务将与您的应用程序在同一进程中运行。如果它被杀死(即崩溃),那么属于该进程的所有线程都将消失,但我认为这不是您要问的。如果服务以正常方式停止,则服务启动的线程不会自动终止,除非该服务正在另一个进程中运行,并且该进程也已终止。可能不是。即使在进程中运行的活动或服务被停止和破坏之后,Android也倾向于保留进程。我发现这也是事实。 我希望在后台服务(主UI

假设我实现了一个服务,该服务启动执行长时间运行操作的线程。 如果服务被终止,会自动终止那些正在运行的线程吗


谢谢。

除非您在清单中另有规定,否则服务将与您的应用程序在同一进程中运行。如果它被杀死(即崩溃),那么属于该进程的所有线程都将消失,但我认为这不是您要问的。如果服务以正常方式停止,则服务启动的线程不会自动终止,除非该服务正在另一个进程中运行,并且该进程也已终止。可能不是。即使在进程中运行的活动或服务被停止和破坏之后,Android也倾向于保留进程。

我发现这也是事实。 我希望在后台服务(主UI进程)中有一个线程。我希望在主活动终止时终止服务,但是我发现即使活动和服务(stopSelf)停止/被停止,我的线程也会继续运行


我必须明确地终止线程。我通过调用yourThread.interrupt()实现了这一点。

谢谢@Perroloco-这很有意义。我猜“kill unit”始终是进程级别,因此也会删除任何线程。@Cumbayah我不太确定“如果某个活动暂停或停止,系统可以通过请求它完成(调用其finish()方法)或简单地终止其进程,将其从内存中删除”。似乎并不总是过程级的。