当服务停止时,所有线程都会被终止吗?

问题描述:

在我服务的onStartCommand()方法中,我启动了一个长时间运行的线程。当服务停止时,所有线程都会被终止吗?

该服务开始于我的MainActivityonCreate()

当我的应用程序退出时(主要活动由用户关闭的时间),我停止服务。但我想确保之前提到的线程已经被杀死,或者我必须在线程之前/之后停止线程。

那么所有线程在服务中启动服务停止时会自动终止?

+2

不,他们不会被杀害。如果你想手动杀死它,你必须有一些检查点。请参阅异步任务。 –

+1

在长时间运行的线程中执行Log.d(),您会发现自己! –

+2

线程是组件独立的。按组件我的意思是活动,服务,内容提供者和广播接收者。通过独立,我的意思是他们没有响应生命周期回调方法,如onCreate,onDestroy等。 –

我刚刚通过在我的服务的onDestroy()中记录线程状态来检查此问题。我的服务停止后线程仍然保持活动状态。

+0

http://*.com/questions/10961714/how-to-properly-stop-the-thread-in-java –

+0

谢谢。但我的线程运行一个Web服务器(Jetty)。我可以通过调用服务器的stop()方法来阻止它。 @GennadiiSaprykin – brk