作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过单击按钮启动服务:
Intent intent = new Intent(getActivity(), UploadService.class);
getActivity().startService(intent);
我的应用程序可以启动多项服务。我知道第一次调用 onCreate(),然后如果服务正在运行,则调用 onStartCommand()。
onStartCommand 返回 START_STICKY
。
但是我面临着一个奇怪的行为:第一次点击时,服务被调用,onCreate() 然后 onStartCommand()... 等等。在第二次点击时,当服务仍在运行时,onStartCommand()...等等。
但是当第一个完成时,onDestroy() 被调用,而第二个仍在进行中... ?
如何避免这种情况?
谢谢
最佳答案
如果您启动已经运行的服务,则不会调用服务的 onDestroy()
并且已经运行的服务实例将被带到前面,但是如果您的服务已完成/停止明确地,只有它的 onDestroy()
会被调用。
关于android - 多次调用的服务自行结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469760/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!