gpt4 book ai didi

android - 关于服务中的 START_STICKY

转载 作者:行者123 更新时间:2023-11-29 01:27:45 25 4
gpt4 key购买 nike

关于使用START_STICKY在 Android 服务中。

官方文档说:

if this service's process is killed while it is started (after returning from onStartCommand(Intent, int, int)), then leave it in the started state but don't retain this delivered intent. Later the system will try to re-create the service. Because it is in the started state, it will guarantee to call onStartCommand(Intent, int, int) after creating the new service instance;

这是可以理解的,所以当一个启动服务的进程由于内存不足而被杀死时,操作系统稍后会自动尝试再次启动该服务。

我的问题是,如果我的代码启动服务 startService(...),然后停止它(例如,我的应用程序 UI 上有一个“停止”按钮,当按下它时,我call stopService(...)), 系统稍后会再次启动该服务吗?或者服务实例会完全从内存中清除,而无需稍后由系统创建? (此场景没有服务绑定(bind))

最佳答案

START_STICKY- 告诉系统在从低内存中恢复后,当有足够的内存可用时,创建服务的新副本。在这里您将丢失之前可能已经计算出的结果。

您的查询的答案是,只有在使用 START_STICKY 时在任何情况下被操作系统终止时,服务才会重新创建。如果我们要终止该服务,为什么 android 需要再次复制它。如果您使用 stopSelf(),即使它是粘性的,该服务也不会重新创建。

关于android - 关于服务中的 START_STICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32962593/

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