在我的服务的onStartCommand()
方法中,我启动了一个长期运行的线程。
该服务已在我MainActivity
的{{1}}。
当我的应用程序退出(主要活动由用户关闭时),我停止服务。但是我想确保前面提到的线程被杀死,或者我必须在之前/之后停止线程。
当服务停止时,所有线程在服务中启动会自动被杀死吗?
答案 0 :(得分:0)
我刚刚通过在我的服务onDestroy()
中记录线程的状态来检查这一点。我的服务停止后线程仍然存在。
答案 1 :(得分:0)
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
super.onStartCommand(intent, flags, startId)
Log.d(TAG,"Service started..")
Thread(Runnable {
for (i in 1..1000){
Thread.sleep(3000)
serviceRandom = i;
Log.d(TAG,"Service Random - "+serviceRandom)
}
}).start()
return Service.START_STICKY
}
这是一种简单的方法,通过调用
可以确定线程是保持活动状态还是在服务停止后停止stopService(serviceIntent)
来自活动。
在logcat中,您将观察到计数递增的日志。这意味着我们必须自己停止它。