服务停止后是否会杀死所有线程?

时间:2016-06-13 14:40:52

标签: android service

在我的服务的onStartCommand()方法中,我启动了一个长期运行的线程。

该服务已在我MainActivity的{​​{1}}。

中启动

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

当服务停止时,所有线程在服务中启动会自动被杀死吗?

2 个答案:

答案 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中,您将观察到计数递增的日志。这意味着我们必须自己停止它。

相关问题