当服务停止时,所有线程都会被终止吗?
在我服务的onStartCommand()
方法中,我启动了一个长时间运行的线程。当服务停止时,所有线程都会被终止吗?
该服务开始于我的MainActivity
的onCreate()
。
当我的应用程序退出时(主要活动由用户关闭的时间),我停止服务。但我想确保之前提到的线程已经被杀死,或者我必须在线程之前/之后停止线程。
那么所有线程在服务中启动服务停止时会自动终止?
我刚刚通过在我的服务的onDestroy()
中记录线程状态来检查此问题。我的服务停止后线程仍然保持活动状态。
http://stackoverflow.com/questions/10961714/how-to-properly-stop-the-thread-in-java –
谢谢。但我的线程运行一个Web服务器(Jetty)。我可以通过调用服务器的stop()方法来阻止它。 @GennadiiSaprykin – brk
不,他们不会被杀害。如果你想手动杀死它,你必须有一些检查点。请参阅异步任务。 –
在长时间运行的线程中执行Log.d(),您会发现自己! –
线程是组件独立的。按组件我的意思是活动,服务,内容提供者和广播接收者。通过独立,我的意思是他们没有响应生命周期回调方法,如onCreate,onDestroy等。 –