gpt4 book ai didi

android - StopService 不会立即调用 onDestroy

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:22 26 4
gpt4 key购买 nike

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

    context.stopService(intent);

但是这个语句并不是立即调用服务的onDestory()方法,而是需要一段时间才能调用服务的onDestroy()方法。

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

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

最佳答案

就我而言,我遵循了 Android Developers 上的教程,它使用 ServiceConnection。在示例代码中,他们调用了 unbindService() 但从未调用 stopService()。所以我添加了一个调用 stopService() 来停止它,但是 onDestroy() 仍然没有被调用。

来自 Context.stopService() 的文档:

Note that if a stopped service still has ServiceConnection objects bound to it with the BIND_AUTO_CREATE set, it will not be destroyed until all of these bindings are removed.

我将此解释为可以先调用 stopService()stopSelf(),然后再调用 unbindService()(我' m 使用 BIND_AUTO_CREATE) - 并且服务将在调用 unbindService() 时停止/销毁。

但事实并非如此。当我四处移动以便我先调用 unbindService() 然后调用 stopService() 时,我的 onDestroy() 会立即被调用.

关于android - StopService 不会立即调用 onDestroy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com