Android StopService不会立即调用onDestroy

Android StopService不会立即调用onDestroy,android,android-service,Android,Android Service,我使用以下语句停止在后台运行的下载服务(扩展IntentService): context.stopService(intent); 但该语句并不是立即调用服务的onDestroy()方法,而是需要一些时间来调用服务的onDestroy()方法 @Override public void onDestroy() { Log.d("JSLog", "on destroy called"); super.onDestroy(); } 点击stopService()语句后,

我使用以下语句停止在后台运行的下载服务(扩展IntentService):

    context.stopService(intent);
但该语句并不是立即调用服务的onDestroy()方法,而是需要一些时间来调用服务的onDestroy()方法

@Override
public void onDestroy() {
    Log.d("JSLog", "on destroy called");
    super.onDestroy();
}

点击stopService()语句后,应该立即调用服务的onDestroy()方法。

intentService有新线程,当你停止服务时,新线程不会立即停止,如果你想立即停止线程,我会在服务中扩展服务和新线程,当您需要停止服务时,只需中断线程。

这是预期的行为,服务停止后不会立即被销毁,就像活动完成后可能不会立即被销毁一样(除非您在onCreate内部完成)。

在我的情况下,我遵循的教程是,它使用了
服务连接。在示例代码中,它们调用
unbindService()
,但从不调用
stopService()
。因此,我添加了一个对
stopService()
的调用来停止它,但仍然
onDestroy()
没有被调用

根据以下文件:

请注意,如果停止的服务仍然使用BIND_AUTO_CREATE集将ServiceConnection对象绑定到该服务,则在删除所有这些绑定之前,不会销毁该服务

我将此解释为可以先调用
stopService()
stopSelf()
,然后再调用
unbindService()
(我使用的是
BIND\u AUTO\u CREATE
),调用
unbindService()
)时服务将停止/销毁


但事实并非如此。当我移动东西时,首先调用
unbindService()
然后调用
stopService()
之后,我的
onDestroy()
会立即被调用。

那么我应该如何停止它呢?有什么办法吗?这很有帮助。在我的例子中,我没有调用unbindService,而这导致onDestroy从未被调用。